我想在我的任务models.py中创建一个用户外键到另一个名为UserProfile的表。我希望将一项任务与用户相关联,因此当我查询并将其显示在个人资料页面中时,我看不到其他任何人。但是,当我尝试这个时,我收到了这个错误:
这是我的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 :(得分:1)
在班级Task
中,您可以像这样定义外键:
owner = models.ForeignKey('user')
这需要在同一个应用中使用名为user
的类。你没有它
因为您想要从另一个应用程序构建与模型的关系,所以您必须使用以下模式app_label.Model
。在你的情况下,它应该是这样的:
owner = models.ForeignKey('useraccounts.UserProfile')