问题标签 [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.
python - 动态更新 ModelForm 的 Meta 类
我希望从我的视图中动态更新 ModelForm 的内联 Meta 类。尽管此代码似乎更新了 Meta 类中的排除列表,但 、 等的输出as_p()
并未as_ul()
反映更新后的 Meta 排除。
然后我假设 html 是在创建 ModelForm 时生成的,而不是在as_*()
调用时生成的。有没有办法强制更新 HTML?
这甚至是最好的方法吗?我只是假设这应该有效。
想法?
django - django更新模型表单
我有一个模型如下
我的模型如下
我的函数看起来像这样来显示和更新表单。
我在数据库中的 user_id 是 1.. 但是当我发布表单时它永远不会更新。我知道 form.save() 被调用是因为在那里打印并显示在开发服务器中。
python - 在 ModelForm 中的多个表单字段上拆分 ManyToManyField
所以我有一个带有 ManyToManyField 的模型,称为锦标赛。我有一个带有两个锦标赛字段的 ModelForm:
all() 之后的方法来自子类 QuerySet。当我在视图中保存表单时,我会这样做:
无论如何,这一切都很好。我不知道如何在加载现有帖子时填写这些表单字段。也就是说,当我将 instance=post 传递给表单时。有任何想法吗?
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'),
django - 模型表单集和日期字段
我在具有几个日期字段的模型上有一个模型表单集 - 这又是模型中的 DateTimeField。但是当它显示在模板中时,它显示为一个文本字段。如何将其显示为下拉框?
这就是我初始化模型集的方式。
如何覆盖这些设置
python - 从模型表单创建模型表单集
我有一个模型 MyModel,它包含一个 PK - locid,即一个 AutoField。
我想从中构建一个模型表单集,但有一些注意事项:
- 表单集的查询集应该是自定义的(比如 order_by('field'))而不是 all()
- 由于 MyModel 的 locid 是一个 AutoField,因此默认情况下是隐藏的,因此我希望能够将其显示给用户。
我不知道该怎么做。我尝试了多种方法,
上面给了我 3 个字段,但是 locid 是隐藏的。
以上给了我一个ManyToMany错误。
有没有人做过这样的事情?
编辑2
我现在可以在实例化表单集时使用自定义查询 - 但我仍然需要向用户显示 locid 字段,因为 id 对于应用程序的使用很重要。我该怎么做?如果它是自动字段,有没有办法覆盖隐藏 PK 的默认行为?
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 神奇地消失了。我已经尝试了很多次,确保我没有无意中进行另一个更改,并且每次都有效。
有谁知道这里发生了什么?
django - 使用内联表单集创建模型和相关模型
[我在Django users 上发布了这个 | 谷歌组也是。]
使用inline formset docs中的示例,我可以编辑属于特定模型的对象(使用 modelforms)。我一直在尝试遵循相同的模式来 使用内联表单集创建新对象,但一直无法清醒到足以为此目的带来工作视图。
使用与上述链接相同的示例,我将如何创建“作者”模型的新实例及其相关的“书”对象?
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
python - 使用 ModelForms 时如何更新已经存在的行?
当其中一个字段是我的主键时,我有一个关于如何更新数据库中现有行的问题。我正在使用 ModelForm 和 Django-Piston - 我的主要目标是让 RESTful Post 发送到我的网络服务。我能够正确发送初始帖子(即该主键值尚不存在)。问题是当我想更新主键已经存在的值时 - 当我发出 f.is_valid() 它失败,因为“这个 UniqueIdentifier 已经存在”。如何使用 ModelForms 进行表单验证以更新现有行?
我的模型.py:
表格.py
处理程序.py
网址.py