ページ

2008年11月15日

Djangoでテーブルが作れない

Djangoでモデルを作ってpython manage.py syncdbをすると

Error: One or more models did not validate:
auth.message: Accessor for field 'user' clashes with related field 'User.message_set'. Add a related_name argument to the definition for 'user'.
logs.message: Accessor for field 'author' clashes with related field 'User.message_set'. Add a related_name argument to the definition for 'author'.
と言われて、怒られます。models.pyはこんな感じ。

from django.db import models
from django.contrib.auth.models import User

class Message(models.Model):
    author = models.ForeignKey(User)

のようにしているだけです。a2cのDjango 0.7とかではちゃんと動いています。下手にDjangoに手を出した僕が悪いのでしょう。Pylonsでもいいような気がしてきた。

そして、ここのお達しによると、エラーメッセージに書いてあるようにForeignKeyの引数にrelated_nameを指定すればよいらしいです。related_nameを指定したらちゃんとデータベースができました。

ついでにエラーメッセージのcrashがclash。それとも僕の知らない単語?

0 件のコメント: