2017-11-04 9 views
0

私は自分のタスクの中でユーザーの外部キーをUserProfileという名前の別のテーブルに作成したかったのです。タスクをユーザーに関連付けて、クエリを実行してプロフィールページに表示するときは、他のユーザーは表示されません。私はこれをしようとしたときしかし、私はこのエラーを得た:Djangoのあるアプリケーションから別のアプリケーションへの外部キーの作成

enter image description here

これは私のtasks.model.py

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

class Task(models.Model): 
    task_name = models.CharField(max_length=140, unique=True) 
    owner = models.ForeignKey('user') 
    description = models.CharField(max_length=140) 
    create_date = models.DateField() 
    completed = models.BooleanField() 
    private = models.BooleanField() 

    def __unicode__(self): # Tell it to return as a unicode string (The name of the to-do item) rather than just Object. 
     return self.name 

これは私のuseraccounts.models.py

class UserProfile(models.Model): 
    user = models.OneToOneField(User, on_delete=models.CASCADE, default='') 
    username = models.CharField(max_length=14, default='') 
    birth_date = models.DateField(null=True, default = '2000-01-01', blank=True) 
    email = models.EmailField(null=True, default='') 
+0

スクリーンショットを投稿しないでください。コード例を書き留めます。結局のところ、それはわずか数行以上です。 – cezar

+0

私はコードを追加しました。 – TheCoxer

+0

エラー部分についてもそれをしてください。 – cezar

答えて

1
です

クラスTaskでは、次のように外部キーを定義します。

owner = models.ForeignKey('user') 

これは同じアプリケーション内にuserという名前のクラスが必要です。あなたはそれを持っていません。
別のアプリからモデルへのリレーションを構築するためには、次のパターンapp_label.Modelを使用する必要があります。あなたの場合は次のようになります:

owner = models.ForeignKey('useraccounts.UserProfile') 
関連する問題