- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试为以下模型创建一个表单集:
class Category(models.Model):
name = models.CharField(max_length=100, unique=True)
description = models.TextField(null = True, blank=True)
class Recipe(models.Model):
title = models.CharField(max_length=100)
body = models.TextField()
user = models.ForeignKey(User)
categories = models.ManyToManyField(Category, null = True, blank = True)
但是每当我尝试实现一个表单集时,就像这样:
FormSet = inlineformset_factory(Category, Recipe, extra=3)
formset = FormSet()
我收到一条错误消息,指出类别模型中不存在外键。是否可以使用 ManyToManyField 构建表单集,或以某种方式复制此功能?
谢谢!
最佳答案
根据源代码和文档,它仅适用于外键
所以如果你想为你的模型创建一个表单集,你必须改变
categories = models.ManyToManyField(Category, null = True, blank = True)
到
categories = models.ForeignKey("Category", null = True, blank = True)
文档: https://docs.djangoproject.com/en/1.4/topics/forms/modelforms/#inline-formsets https://docs.djangoproject.com/en/1.4/topics/forms/modelforms/#more-than-one-foreign-key-to-the-same-model
Django 源代码:
def inlineformset_factory(parent_model, model, form=ModelForm,
formset=BaseInlineFormSet, fk_name=None,
fields=None, exclude=None,
extra=3, can_order=False, can_delete=True, max_num=None,
formfield_callback=None):
"""
Returns an ``InlineFormSet`` for the given kwargs.
You must provide ``fk_name`` if ``model`` has more than one ``ForeignKey``
to ``parent_model``.
"""
关于python - Django inlineformset_factory 和 ManyToMany 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10302403/
当小部件与 inlineformset_factory 一起使用时,我无法让它们工作 class TravelsRelationsForm(forms.ModelForm): def __in
在 django 文档中,有一个使用 inlineformset_factory 编辑已创建的对象的示例 https://docs.djangoproject.com/en/dev/topics/fo
我有一个像下面这样的模型。 class Content(SimpleModel): title = models.CharField(max_length=255) body = mo
我正在尝试使用以下模型做一个表单集(提升是主要的): class boost(models.Model): creator = models.ForeignKey(userInfo) game
我正在尝试将 request 对象传递到我的 inlineformset_factory 中,并且正在努力实现这一点。 在 forms.py 我有以下内容: class SummativeScoreF
我正在尝试使用 inlineformset_factory 生成表单集。我的模型定义为: class Measurement(models.Model): subject = models.F
我想将 Django inlineformset_factory 与自定义表单集一起使用,并希望使用 django-dynamic-formset 添加或删除该内联表单集. 表格: class Cre
我有两个模型,我们称它们为模型 A 和模型 B。有一个从 B 到 A 的外键。 即A和B之间的基数为1:n。 我已经为B做了一个对应的ModelForm,叫做MF_B。我在 B 中定义了一个额外的字段
我对 django 还很陌生,我遇到了问题,想请求一些帮助。 我在将自定义参数传递到表单时遇到错误 KeyError at /someurl 'my_arg' Request Method:
我想更改 inlineformset_factory 表单中的默认上传字段 (FileField),以使用 django.contrib.admin.widgets 中的 AdminFileWidge
Django 中的表单可能很复杂。 Formsets 会让你想退出 Django。我就在那个时候。 有哪些不同的用例以及使用哪个(哪些)用例的注意事项? 我正在寻找关于何时使用每个工厂的更好指导,因为
我有一个带有两个外键的模型: class Model1(models.Model): model_a = models.ForeignKey(ModelA) model_b = models.
我的 inlineformset_factory 一直在花花公子地工作,直到我决定弄乱布局。 我已经创建了一个基于图像的表单来处理已经上传的图像(以及默认图像以防空间未被占用)而不是有点无聊的灰色 i
我正在尝试为以下模型创建一个表单集: class Category(models.Model): name = models.CharField(max_length=100, unique=
我正在使用 django inlineformset_factory 函数。 a = get_object_or_404(ModelA, pk=id) FormSet = inlineformset_
我遇到了这个错误 __init__() got an unexpected keyword argument 'instance' 每当我尝试发送带有为 inlineformset_factory 指
我是一名优秀的程序员,十分优秀!