2017-01-05 24 views
0

オブジェクトがデータベースに存在するかどうかを判断する方法はありますか。存在する場合は、「オブジェクトは既に存在します」が返されます。それ以外の場合は、新しいオブジェクトが作成されます。CreateViewにオブジェクトが既に存在するかどうかを確認する

+1

が、私はまだ多分抽出し、個別に 'CreateView'と' UpdateView'を使用することを好みます共通部分を基本クラスに追加します。 –

+0

希望の答えを得るために質問を言い換えることができます。 – giantas

+1

https://chriskief.com/2015/01/19/create-or-update-with-a-django-modelform/ –

答えて

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 
0

get_or_createの方法はどうですか?これで、オブジェクトが新しく作成されたかどうかもわかります。そうでなければ、あなたはあなたの "オブジェクトが既に存在"を返します。

post(request, *args, **kwargs)メソッドのオーバーライドでこれを行う必要があります。

だからthe docs for futher information

関連する問題