Django: добавить поле в форму модели - PullRequest
2 голосов
/ 18 января 2011

Могу ли я добавить поля в набор форм модели?Кажется, вы можете добавлять поля, если вы используете обычный набор форм, но не с наборами форм модели (по крайней мере, это не так).Не думаю, что мне следует использовать встроенный набор форм ..?

Я хочу позволить пользователям редактировать свой фотоальбом (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 Ответ

10 голосов
/ 18 января 2011

Вы можете добавить поля. Просто определите форму обычным способом, а затем скажите 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)
...