2017-02-05 24 views
0

我的位置模式具有獨特的申請稱爲。通過LocationForm我獲取用戶輸入並嘗試要麼插入到數據庫或獲取axisting對象。但是,如果用戶輸入現有名稱,lf.is_valid()變爲假,我從來沒有到get_or_create命令。任何想法我怎麼能通過這個?ModelForm.is_valid()爲假當行已經存在。如何獲取對象?

lf = LocationForm(request.POST or None) 
if lf.is_valid(): 
    location_instance, created = Location.objects.get_or_create(**lf.cleaned_data) 

感謝,

回答

0

感謝您的想法。 我發現.is_valid的Django文檔在一個有用的描述。 Django Validating Objects
顯然.is_valid也覈對Model.validate_unique()。 這裏是我落得這樣做:

if lf.is_valid(): 
    location_instance = lf.save() 
    return render (...) 

else: 
    location_instance, created = Location.objects.get_or_create(**lf.cleaned_data) 
    error_msg = lf.errors["__all__"]    
    return render(...) 
相關問題