2011-07-31 6 views
0

syncdbを実行しようとすると問題が発生します。私のモデル:syncdbを使用したdjangoの問題

class TeachSubject(models.Model): 
    teacher = models.ForeignKey(User) 
    taught_class = models.ForeignKey(SchoolClass) 
    subject = models.ForeignKey(Subject) 
    year = models.IntegerField(default=datetime.date.today().year) 
    semester = models.IntegerField() 

    #class Meta: 
     #db_table = 'subject_teachers' 

別のファイル:

from customUsers.models import TeachSubject 

class SubjectPeriod(models.Model): 
    days = ((1, 'Mon'), 
      (2, 'Tues'), 
      (3, 'Wed'), 
      (4,'Thurs'), 
      (5,'Friday')) 
    tsc = models.ForeignKey(TeachSubject) 
    day = models.IntegerField(choices = days) 
    period = models.IntegerField() 

    class Meta: 
     db_table = 'subject_period' 
     unique_together = ('day', 'period', 'tsc') 

はテーブルsubject_periodが無事に作成され、実行中のsyncdbの実行を試してみました。つまり、データベースそのものをチェックした後で、tsc = models.ForeignKey(TeachSubject)という行には外来キー制約が作成されていません。

誰でも光を放つことができますか?ジャンゴ1.2.4使用

EDIT(。psの私はここに投稿する前にチェックするいくつかの時間を費やしたが、それは不注意な間違いだったのであれば、私はあなたの許しを請う。):

OK私は、テーブルを削除して作成し、再試行しました代わりに南を使用しています。今はうまく動作しますが、前者の方法で何が問題になったのかを知ることはまだ良いでしょう。

答えて

0

あなたの2つのモデルが異なるアプリからのものであると仮定します。

docsは言う:

別のアプリケーションで定義されたモデルを参照するには、明示的に完全なアプリケーションのラベルを持つモデルを指定することができます。例えば上記のメーカーのモデルが生産と呼ばれる別のアプリケーションで定義されている場合、あなたが使用する必要があるだろう:

ので、あなたのforeignkeyfieldは、次のようになります。これはまた、あなたがする必要がないことを意味し

tsc = models.ForeignKey('customUsers.TeachSubject') 

。全くただ何も - - 他のアプリケーション(また、円形の輸入の問題を解決する

からモデルをインポートあなたがエラーを取得いけないことを奇妙に思える。しかし、それだけでうまくいくかもしれないことをしてみてください

+0

私が見逃している必要がありますとにかく、私はそれを固定しています南を使用している。とにかく教えてくれてありがとう – goh

関連する問題