1
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 表单获取模型的数据。我想做的就是将它们推入数据库。下面是我正在做的代码。

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 警告)

这就是我想要构建的:

  1. 创建一个联系表单,其中 user_name、email、url、msg 是字段(email、url 不是强制性的)

  2. 将数据推送到数据库。

我哪里出错了以及如何解决它

4

2 回答 2

2

新对象的 ID 在保存之前不会定义。首先保存 User 对象,然后保存 Note 对象。

于 2013-01-02T18:22:26.307 回答
1

空白的:

如果为 True,则该字段允许为空。默认为假。

请注意,这与 null 不同。null 纯粹与数据库相关,而空白与验证相关。如果一个字段有空白=真,表单验证将允许输入一个空值。如果某个字段的空白=False,则该字段将是必需的。

https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.Field.blank

于 2013-01-02T19:11:34.647 回答