2017-05-11 79 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

谢谢!代码已经运行良好:) –

相关问题