问题标签 [modelform]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
11682 浏览

python - 动态更新 ModelForm 的 Meta 类

我希望从我的视图中动态更新 ModelForm 的内联 Meta 类。尽管此代码似乎更新了 Meta 类中的排除列表,但 、 等的输出as_p()并未as_ul()反映更新后的 Meta 排除。

然后我假设 html 是在创建 ModelForm 时生成的,而不是在as_*()调用时生成的。有没有办法强制更新 HTML?

这甚至是最好的方法吗?我只是假设这应该有效。

想法?

0 投票
1 回答
6817 浏览

django - django更新模型表单

我有一个模型如下

我的模型如下

我的函数看起来像这样来显示和更新表单。

我在数据库中的 user_id 是 1.. 但是当我发布表单时它永远不会更新。我知道 form.save() 被调用是因为在那里打印并显示在开发服务器中。

0 投票
2 回答
386 浏览

python - 在 ModelForm 中的多个表单字段上拆分 ManyToManyField

所以我有一个带有 ManyToManyField 的模型,称为锦标赛。我有一个带有两个锦标赛字段的 ModelForm:

all() 之后的方法来自子类 QuerySet。当我在视图中保存表单时,我会这样做:

无论如何,这一切都很好。我不知道如何在加载现有帖子时填写这些表单字段。也就是说,当我将 instance=post 传递给表单时。有任何想法吗?

0 投票
1 回答
5479 浏览

django - 保存 modelForm 以更新现有记录

我创建了一个带有现有模型(书)实例的模型表单。我无法更新图书记录。添加新记录很好,但是当我尝试更新时,它似乎无法找到发布者(这是一个外键)。错误是“没有发布者与给定的查询匹配。”

模型.py

类发布者(模型。模型):

类作者(models.Model):

类书(模型。模型):

类BookForm(ModelForm):

视图.py

def authorcontactupd(request,id):

错误信息

找不到页面 (404) 请求方法:POST 请求 URL:http: //127.0.0.1 :8000/books/bookupd/

没有发布者与给定的查询匹配。

您看到此错误是因为您的 Django 设置文件中有 DEBUG = True 。将其更改为 False,Django 将显示标准 404 页面。

网址.py

从 django.conf.urls.defaults 导入 *

从 django.views.generic.simple 导入 direct_to_template

从 mysite10.books.views 导入 about_pages、books_by_publisher、authorcontact、bookcontact、booklisting、authorcontactupd

从 django.views.generic 导入 list_detail

从 mysite10.books.models 导入出版商,书籍

从 django.contrib 导入管理员

admin.autodiscover()

def get_books():

出版商信息 = {

}

book_info = {

}

oreilly_books = {

}

urlpatterns = 模式('',

)

-------------------------------------------------

我终于让它使用下面的代码。urls.py 中的错误,因为 $ 之前缺少正斜杠。修改为 (r'^books/bookupd/(\d+)/$'

视图.py

def book_upd(request,id):

网址.py

(r'^books/bookupd/(\d+)/$', 'mysite10.books.views.book_upd'),

0 投票
1 回答
2373 浏览

django - 模型表单集和日期字段

我在具有几个日期字段的模型上有一个模型表单集 - 这又是模型中的 DateTimeField。但是当它显示在模板中时,它显示为一个文本字段。如何将其显示为下拉框?

这就是我初始化模型集的方式。

如何覆盖这些设置

0 投票
3 回答
2439 浏览

python - 从模型表单创建模型表单集

我有一个模型 MyModel,它包含一个 PK - locid,即一个 AutoField。

我想从中构建一个模型表单集,但有一些注意事项:

  • 表单集的查询集应该是自定义的(比如 order_by('field'))而不是 all()
  • 由于 MyModel 的 locid 是一个 AutoField,因此默认情况下是隐藏的,因此我希望能够将其显示给用户。

我不知道该怎么做。我尝试了多种方法,

上面给了我 3 个字段,但是 locid 是隐藏的。

以上给了我一个ManyToMany错误。

有没有人做过这样的事情?


编辑2

我现在可以在实例化表单集时使用自定义查询 - 但我仍然需要向用户显示 locid 字段,因为 id 对于应用程序的使用很重要。我该怎么做?如果它是自动字段,有没有办法覆盖隐藏 PK 的默认行为?

0 投票
1 回答
209 浏览

python - ModelForm 和保存的奇怪行为

这个问题很奇怪,我希望有人能帮助我。为了论证,我有一个 Author 模型,它与 Book 模型有 ForeignKey 关系。当我显示作者时,我希望有一个仅显示与该作者关联的书籍的 ChoiceField。因此,我重写了 AuthorForm。init () 方法,然后我根据一个查询创建一个选择列表(元组),该查询根据作者 ID 过滤书籍。元组是书 ID 和书名的组合(即 (1, 'Moby Dick'))。然后将这些“选择”分配给 ModelForm 的选择属性。

当表单在模板中呈现时,ChoiceField 会正确显示,仅列出与该作者关联的书籍。

这就是事情变得奇怪的地方。

当我保存表单时,我收到一个 ValueError (Cannot assign "u'1'":Author.book" must be a Book instance)。由于 FK 关系,这个错误是有道理的。但是,如果我添加一个“print”声明代码,不做其他更改,然后保存记录,它可以工作。 ValueError 神奇地消失了。我已经尝试了很多次,确保我没有无意中进行另一个更改,并且每次都有效。

有谁知道这里发生了什么?

0 投票
3 回答
37520 浏览

django - 使用内联表单集创建模型和相关模型

[我在Django users 上发布了这个 | 谷歌组也是。]

使用inline formset docs中的示例,我可以编辑属于特定模型的对象(使用 modelforms)。我一直在尝试遵循相同的模式来 使用内联表单集创建新对象,但一直无法清醒到足以为此目的带来工作视图。

使用与上述链接相同的示例,我将如何创建“作者”模型的新实例及其相关的“书”对象?

0 投票
1 回答
802 浏览

django - ModelForm save fails

I am trying to save a modelform that represents a bank account but I keep getting a ValueError even though the form appears to validate. The models I have to use are:




The ModelForm for the personBankAcc;

The view is:

When I try to save the form I get the a VlaueError exception even though it gets passed the form.is_valid() check, the error I get is:
Cannot assign "u'26'": PersonBankAcc.bank must be a "bank" instance

I know the issue is arising because of the widget I am using in the PersonBankAccForm:
bank = forms.ChoiceField(widget=SelectWithPop)
because if I remove it it works. But all that does is gives me the ability to add a new bank to the database via a popup and then inserts it into the select list, similar to the admin popup forms. I have checked the database and the new bank is added. But it fails even if I don't change anything, if I call the form and submit it, I get the same error.

I don't understand why it does not fail at the is_valid check.

Any help would be greatly appreciated.

Thanks
Andrew

0 投票
4 回答
12983 浏览

python - 使用 ModelForms 时如何更新已经存在的行?

当其中一个字段是我的主键时,我有一个关于如何更新数据库中现有行的问题。我正在使用 ModelForm 和 Django-Piston - 我的主要目标是让 RESTful Post 发送到我的网络服务。我能够正确发送初始帖子(即该主键值尚不存在)。问题是当我想更新主键已经存在的值时 - 当我发出 f.is_valid() 它失败,因为“这个 UniqueIdentifier 已经存在”。如何使用 ModelForms 进行表单验证以更新现有行?

我的模型.py:

表格.py

处理程序.py

网址.py