2017-05-11 80 views
0

我無法通過形式從模型保存對象,因爲我得到,說:「sportsession.date未必空」如何在django模型中保存日期字段?

models.py錯誤

class SportSession(models.Model): 
session_id = models.AutoField(primary_key=True) 
name = models.CharField(max_length=100) 
sport_type = models.ForeignKey(SportType) 
date = models.DateField() 
usuario = models.ForeignKey(User) 

def __unicode__(self): # python 2 
    return self.name 

forms.py

class SportSessionForm(ModelForm): 
    class Meta: 
    model = SportSession 
    exclude = ("usuario", "date", "session_id") 

views.py

def sport(request): 
    form = SportSessionForm(request.POST or None) 
    if form.is_valid(): 
    form_data = form.cleaned_data # obtenemos la info del formulario 
    obj = SportSession.objects.create() 
    obj.name = form_data.get("name") 
    obj.sport_type = form_data.get("sport_type") 
    obj.date = date.today() 
    obj.save() 
    context = { 
    "sport_session_form": form, 
    } 
    return render(request, "sport.html", context) 

回答

2

你不應該叫create方法,如果您想在以後添加的對象數據,只需創建它的實例:

obj = SportSession() 
obj.name = form_data.get("name") 
obj.sport_type = form_data.get("sport_type") 
obj.date = date.today() 
obj.usuario = request.user # You need to set this as well to appropriate user instance 
obj.save() 

你得到的錯誤是因爲在你的模型date字段不能爲空,但你試圖使用創建一個對象SportSession.objects.create()而不傳遞所需的數據。

注意:您的usuario字段不能爲空(請參閱我在代碼中的說明)。

+0

謝謝!代碼已經運行良好:) –

相關問題