отлов использования django modelForm: добавление или обновление? - PullRequest
0 голосов
/ 12 декабря 2011

В моем django admin.py у меня есть собственный виджет, основанный на меню выбора.

Я хочу, чтобы он вел себя по-разному (показывать разные элементы), когда он отображается в режиме создания (добавления объекта) или в режиме обновления, поскольку в этих полях пользователь может выбирать видео из размещенного списка воспроизведения.

Я могу передать другой список элементов (аргумент "выборы") при вызове виджета в modelForm, но как я могу получить эту информацию: режим добавления или обновления?

ОБНОВЛЕНИЕ: благодаря второй вот ответ

class VideoAdminForm(forms.ModelForm):
    class Meta:
        model = Video
        widgets = {'id_vimeo' : VimeoSelectWidget()}
    def __init__(self, *args, **kwargs):
        super(VideoAdminForm, self).__init__(*args, **kwargs)
        if self.instance.pk is None:
            self.fields['id_vimeo'] = forms.ChoiceField(choices=VimeoList())
        else:
            self.fields['id_vimeo'] = forms.ChoiceField(choices = Video.objects.all().values_list('id_vimeo','titre'))

1 Ответ

2 голосов
/ 12 декабря 2011

посмотрите на экземпляр модели, связанный с формой. если он имеет pk, он существует и изменяется, если pk равен None, он создается

...