2016-07-28 124 views
0

我想選擇一個事件並上傳照片,但是當我進行遷移時,它會給出 NOT NULL約束失敗:myapp_doc.event錯誤。NOT NULL約束失敗錯誤

即使在刪除視圖後,我仍然收到錯誤。我該怎麼辦 ?

車型

class Doc(models.Model): 
    events = (
     (None, "choose one of it"), 
     ('bbq', 'Barbeque '), 
     ('meet', 'Meeting'), 
    ) 
    doc = models.FileField(upload_to='uploads/') 
    user = models.ForeignKey(User, null=False, blank=True) 
    event = models.CharField(max_length=15, choices=events, null = True) 
    def __unicode__(self): 
     return unicode(self.user) 

查看

def upload_file(request): 
    user= request.user 
    form = UploadFileForm(request.POST, request.FILES) 
    if form.is_valid(): 
     doc = form.save(commit=False) 
     doc.user = request.user 
     doc.save() 
     messages.success(request, 'Dosya Yuklendi') 

    return HttpResponseRedirect('/uploadnew/') 

return render(request, 'upload.html', {'form': form}) 


def upload_file(request): 
    user= request.user 
    form = UploadFileForm(request.POST, request.FILES) 
    if form.is_valid(): 
     doc = form.save(commit=False) 
     doc.user = request.user 
     doc.save() 
     messages.success(request, 'Dosya Yuklendi') 

     return HttpResponseRedirect('/uploadnew/') 

return render(request, 'upload.html', {'form': form}) 
+0

錯誤在哪裏發生?你可以用追溯編輯你的原始問題嗎?當你改變你的模型時,你是否也創建了一個遷移? –

+0

這與你的觀點無關。請從問題中刪除它,並解釋您對模型所做的更改 – e4c5

+0

@ShangWang我在模型中添加事件,然後在遷移時創建遷移,問題就會發生。 –

回答

0

好我得到了你的問題。

在models.py,要定義爲事件列這是該類型的models.CharField空=真選項。

event = models.CharField(max_length=15, choices=events, null = True) 

但作爲事實上,「CharField」 在它的選項。 只有'max_length'選項可用。

請參閱本 - >https://docs.djangoproject.com/en/1.9/ref/models/fields/

所以從技術上說,你需要刪除空=真一部分,如果你真的想要讓你的web應用程序的用戶具有自由沒有選擇任何選項,那麼您可以將默認值值添加到您的事件列中,該列將從您在事件事件列中定義的選項中選取一個默認值。

請參閱官方文檔中的示例。這是一樣的,你想要什麼 - >https://docs.djangoproject.com/en/1.9/ref/models/fields/#django.db.models.Field.choices

所以,你的事件列終於將是這個樣子,如果你的默認值是燒烤:

event = models.CharField(max_length=15, choices=events, default=bbq) 

此外,如在官方文檔,我不認爲你不需要圍繞'燒烤'或'見面'的單引號。

我希望這能解決您的問題。

+0

非常感謝你! –

+0

樂於幫助。 :) –

相關問題