【发布时间】:2018-01-15 12:41:47
【问题描述】:
我是 django 学习者,我对 django 关系概念有疑问。 我编写了两个与单源模型(UserProfile)有关系的模型。但其中一个不能正常工作。Message 类与它的两个字段(发送者、接收者)一起工作正常,但另一个类(类)导致
编程错误:关系“CEA_class”已经存在
CEA 是我的应用名称。我真的更喜欢为班级设置两个不同的字段,而不是将它们作为单个字段加入。我想用它做什么?
类消息---->工作正常
class Message(models.Model):
sender = models.ForeignKey(UserProfile,blank=False,related_name="sender")
receiver = models.ForeignKey(UserProfile,blank=False,related_name="receiver")
content = models.CharField(max_length=200)
priority = models.BigIntegerField(choices=PRIORITY_LIST,default=1)
class Class ---->导致错误的类
class Class(models.Model):
subject = models.CharField(max_length=20)
time = models.CharField(max_length=20)
day = models.CharField(max_length=20)
location = models.CharField(max_length=20)
students = models.ManyToManyField(UserProfile,blank=True,related_name="students")
master = models.ForeignKey(UserProfile,blank=True,related_name="master")
这是我的整个 UserProfile 类
class UserProfile(models.Model):
user=models.OneToOneField(User,
related_name='UserProfile',on_delete=models.CASCADE)
field=models.CharField(max_length=20,default="ce")
userPhoto=models.ImageField(upload_to='documents/',blank=True)
Type=models.BigIntegerField(choices=USER_TYPE,default=2)
gender=models.BigIntegerField(choices=GENDER_TYPE,default=1)
def __str__(self):
return self.user.username
#The decorator can also takes extra arguments which are passed onto the
signal
@receiver(post_save,sender=User)
def create_or_update_UserProfile(sender, instance, created, **kwargs):
if created:
UserProfile.objects.create(user=instance)
instance.UserProfile.save()
我的管理页面出现如下错误: .
/admin/CEA/class/ 处的编程错误
列 CEA_class.master_id 不存在 LINE 1: ...time", "CEA_class"."day", "CEA_class"."location", "CEA_class...
【问题讨论】:
-
我认为问题不是因为 Django,我认为您需要做的就是删除表并再次运行
migrate。你用的是哪个数据库?? PostgreSQL? -
并尝试使用除 Class 之外的其他名称,使用内置关键字作为表名会令人困惑
-
是的,我使用 postrgreSQL,我尝试刷新数据库或再次迁移数据,但没有成功。我尝试重置迁移,就像网络上存在的一样(simpleisbetterthancomplex.com/tutorial/2016/07/26/…),但我还有问题。
-
当我试图通过管理页面编辑类时,它会导致 ProgrammingError:column CEA_class.master_id 不存在。
-
当我删除“master”字段时,一切正常
标签: django model relational-database relationship