捕捉django modelForm使用:添加还是更新?

时间:2011-12-12 17:19:52

标签: django django-admin django-forms

在我的django admin.py中,我有一个基于选择菜单的自定义小部件。

我希望它在创建模式(添加对象)或更新模式中显示时表现不同(显示不同的项目),因为此字段允许用户从托管播放列表中选择视频。

我可以在modelForm中调用窗口小部件时传递不同的项列表(“choices”参数),但是如何获取此信息:添加或更新模式?

更新:感谢第二个回答

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 个答案:

答案 0 :(得分:2)

查看与表单关联的模型实例。如果它有pk,则它存在且正在更改,如果pkNone,则表示正在创建