-2

なぜエラーが発生するのかわかりません。ここにビューとクレスがあります

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('/$')

モデル.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'] 
4

1 に答える 1

1

テーブル構造が正しくありません。次のものが必要です。

class Results(models.Model):
    word = models.ForeignKey(Word)
    score = models.IntegerField(blank=True, null=True)

その後、このテーブルを削除してコマンドを実行します。

python manange.py syncdb

#blankフォームの検証にこのノードが必要かどうかのオプション

#nullデータベース用のオプション (Null tr​​ue または false)

于 2012-09-12T15:12:42.870 に答える