Django 使用q.save()的IntegrityError:不能为NULL
我不知道为什么会出错。这里是观点和线索Django 使用q.save()的IntegrityError:不能为NULL,django,Django,我不知道为什么会出错。这里是观点和线索 from polls.models import Word, Results def detail(request): q = Word(type="How do you like") q.save() Word.objects.get(pk=1) q.score_set.create(score=5) q.score_set.create(score=4) q.score_set.create(scor
from polls.models import Word, Results
def detail(request):
q = Word(type="How do you like")
q.save()
Word.objects.get(pk=1)
q.score_set.create(score=5)
q.score_set.create(score=4)
q.score_set.create(score=3)
q.score_set.create(score=2)
q.score_set.create(score=1)
return render_to_response('/$')
Models.py
from django.db import models
class Word(models.Model):
type = models.CharField(max_length=200)
def __unicode__(self):
return self.type
class Results(models.Model):
word = models.ForeignKey(Word)
score = models.IntegerField()
def __unicode__(self):
return self.score
错误:
IntegrityError at /
polls_word.score may not be NULLRequest Method: GET
Request URL: Django Version: 1.4.1
Exception Type: IntegrityError
Exception Value: polls_word.score may not be NULL
Exception Location: /home/oveledar/.virtualenvs/django/lib/python2.6/site-packages/django/db/backends/sqlite3/base.py in execute, line 337
Python Executable: /home/oveledar/.virtualenvs/django/bin/python
Python Version: 2.6.6
Python Path: ['/home/oveledar/django/mysite',
'/home/oveledar/.virtualenvs/django/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg',
'/home/oveledar/.virtualenvs/django/lib/python2.6/site-packages/pip-1.0.2-py2.6.egg',
'/home/oveledar/.virtualenvs/django/lib64/python26.zip',
'/home/oveledar/.virtualenvs/django/lib64/python2.6',
'/home/oveledar/.virtualenvs/django/lib64/python2.6/plat-linux2',
'/home/oveledar/.virtualenvs/django/lib64/python2.6/lib-tk',
'/home/oveledar/.virtualenvs/django/lib64/python2.6/lib-old',
'/home/oveledar/.virtualenvs/django/lib64/python2.6/lib-dynload',
'/usr/lib/python2.6',
'/usr/lib64/python2.6',
'/home/oveledar/.virtualenvs/django/lib/python2.6/site-packages']
表结构不正确,需要:
class Results(models.Model):
word = models.ForeignKey(Word)
score = models.IntegerField(blank=True, null=True)
之后,删除此表并运行命令:
python manange.py syncdb
#blank
选项表单验证是否需要此节点
#
null
选项它是为您的数据库准备的(null true或false)请发布您的实际代码。对于这里的模型,Word
没有分数集
——它有结果集
。不确定实际代码是什么意思。我有模型、视图、URL和模板。我还没有使用URL和模板,所以我只是发布了模型和视图。重点是,这段代码将给出与您显示的不同的错误-它将为分数集
提供属性错误。我又跑了一遍。您会谈论代码的其余部分是什么?只是好奇,为什么要在代码的第6行中进行此查询?不幸的是,仍然存在相同的问题。