2017-01-05 1 views
0

개체가 데이터베이스에 있는지 확인하는 방법이 있습니까? 포함되어 있으면 "개체가 이미 있습니다"가 반환됩니다. 그렇지 않으면 새 오브젝트가 작성됩니다.개체가 CreateView에 이미 있는지 확인

+1

,하지만, 난 여전히 UpdateView' 별도로, 어쩌면 압축을 풉니 다''CreateView'를 사용하는 것을 선호하고 공통 부분을 기본 클래스로 –

+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

관련 문제