from django.db import models
import datetime
class User (models.Model):
user_name = models.CharField(max_length=200)
email = models.EmailField(blank=True, null=True)
url = models.URLField(blank=True, null=True)
joined_on = models.DateTimeField(default = datetime.datetime.now)
def __unicode__(self):
return self.user_name
class Note (models.Model):
msg = models.TextField(max_length=2000)
user = models.ForeignKey(User)
pub_date = models.DateTimeField(default = datetime.datetime.now )
def __unicode__(self):
return self.msg[:40]
这些是我的django模型。
现在,我使用Django Form获取模型的数据。我想做的就是将它们推入数据库。以下是我正在做的代码。
u = User(user_name="my name")
n = Note(msg="hi", user=u)
n.save()
现在,我收到IntegrityError: note_note.user_id may not be NULL
错误。
但是,我只是u.save()
它没有显示此错误(日期时间仍然存在RuntimeError警告)
这就是我要构建的内容:
创建一个联系表单,其中user_name,email,url,msg是字段(电子邮件,网址不是必填项)
将数据推送到db。
我哪里出错了以及如何解决它
答案 0 :(得分:2)
新对象的ID在保存之前未定义。首先保存User对象,然后保存Note对象。
答案 1 :(得分:1)
空白:
如果为True,则允许该字段为空。默认值为False。
请注意,这与null不同。 null纯粹与数据库相关,而blank与验证相关。如果字段为空= True,则表单验证将允许输入空值。如果字段为空= False,则需要该字段。
https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.Field.blank