【发布时间】:2016-03-10 22:23:23
【问题描述】:
我目前正在编写一个 Django 应用程序,其中一项功能涉及用户能够向其他用户发送邀请,其中每个邀请都将存储在邀请数据库表中。为了做到这一点,我遵循了docs 和blog post 中提供的结构。以下是用户模型和邀请模型(中间模型):
class User(models.Model):
email = models.EmailField()
full_name = models.CharField(max_length = 120, blank = True, null = True)
timestamp = models.DateTimeField(auto_now_add = True, auto_now = False)
updated = models.DateTimeField(auto_now_add = False, auto_now = True)
invites = models.ManyToManyField('self', through = 'Invite',
symmetrical = False )
def __unicode__(self):
return self.full_name
class Invite(models.Model):
sender_id = models.Foreignkey(User, on_delete = models.CASCADE )
recipient_id = models.Foreignkey(User,on_delete = models.CASCADE)
concert_id = models.AutoField()
artist_id = models.AutoField()
message = models.CharField(max_length = 120, blank = True, null = True)
date_sent = models.DateTimeField(auto_now_add = True, auto_now = False)
由于某种原因,当我尝试运行 DB 迁移时,我收到一个属性错误,指出模块对象没有属性 Foreignkey,参考定义 sender_id 的行。根据文档中提供的代码,模型对象确实具有属性 Foreignkey,那么可能是什么问题?
【问题讨论】:
-
与问题无关,但 django 已经有一个标准的用户模型。如果您要使用身份验证或类似的东西,您应该考虑根据您的个人需求扩展它,而不是创建一个全新的,甚至创建一个包含所有额外信息的新模型(不在标准用户模型中)和一个指向用户模型的 OneToOneField。
标签: python mysql django database-migration