Django:将字段添加到模型表单集

Posted

技术标签:

【中文标题】Django:将字段添加到模型表单集【英文标题】:Django: Add field to model formset 【发布时间】:2011-06-11 07:04:01 【问题描述】:

我可以向模型表单集添加字段吗?如果您使用普通表单集但不能使用模型表单集,您似乎可以添加字段(至少它不一样)。我认为我也不应该使用内联表单集..?

我想让用户编辑他们的相册 (django-photologue)。到目前为止,我已经做到了:

PhotoFormSet = modelformset_factory(Photo,
                                       exclude=(
                                        'effect',
                                        'caption',
                                        'title_slug',
                                        'crop_from',
                                        'is_public',
                                        'slug',
                                        'tags'
                                       ))

context['gallery_form'] = PhotoFormSet(queryset=self.object.gallery.photos.all())

问题是我必须为每张照片添加一个复选框,说“删除这张照片”和一个收音机选择,说“设置为专辑封面”。

提前致谢!

【问题讨论】:

【参考方案1】:

您可以添加字段。只需以正常方式定义一个表单,然后告诉modelformset_factory 将其用作表单集的基础:

MyPhotoForm(forms.ModelForm):
    delete_box = forms.BooleanField()

    class Meta:
        model = Photo
        exclude=('effect',
                 'caption',
                 'title_slug',
                 'crop_from',
                 'is_public',
                 'slug',
                 'tags'
                ))

PhotoFormSet = modelformset_factory(Photo, form=MyPhotoForm)

【讨论】:

谢谢你成功了。最后一件事,如何解决单选框问题,单选框对所有照片都是相互的? 这超出了这个问题的范围。问一个单独的,我会在那里回答。 好吧,我在这里问了这个问题:***.com/questions/4730161/…

以上是关于Django:将字段添加到模型表单集的主要内容,如果未能解决你的问题,请参考以下文章

如何将类、id、占位符属性添加到 django 模型表单中的字段

Django,将排除的属性添加到提交的模型表单

将模型范围的帮助文本添加到 django 模型的管理表单

Django模型表单集显示数据库数据而不是空表单集

使用注册表单添加到自定义用户字段(django)

django - 将字段添加到用户配置文件管理表单