Django:向模型formset添加字段

时间:2011-01-18 18:39:23

标签: django model field add formset

我可以在模型formset中添加字段吗?如果你使用普通的formset而不是模型formset,你似乎可以添加字段(至少它的方式不一样)。我不认为我应该使用内联formset ..?

我想让用户编辑他们的photoalbum(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())

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

提前致谢!

1 个答案:

答案 0 :(得分:9)

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

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)