确定CreateView中是否已存在对象

时间:2017-01-05 14:38:31

标签: django django-views

有没有办法确定数据库中是否存在对象。如果是,则返回“对象已存在”。否则,将创建一个新对象。

2 个答案:

答案 0 :(得分:0)

如何使用get_or_create方法?通过这种方式,您还可以看到对象是否是新创建的。如果没有,则返回您的"对象已存在"。

您应该在视图中覆盖post(request, *args, **kwargs)方法时执行此操作。

请参阅the docs for futher information

答案 1 :(得分:0)

因此,我实施的解决方案必须转到ModelForm

class LabelForm(forms.ModelForm):

    class Meta:
        model = Label
        fields = ('name',)

    def clean(self):
        try:
            Label.objects.get(name=self.cleaned_data['name'].lower())
            raise forms.ValidationError('Label exists!')
        except Label.DoesNotExist:
            pass

        return self.cleaned_data