向前声明 - 在Django没有管理页面?
-
19-09-2019 - |
题
这可能是一个数据库设计问题,但我想不出任何好转。其中几个人,我有这些模型:
class User(models.Model):
name = models.CharField( max_length=40 )
# some fields omitted
bands = models.ManyToManyField( Band )
和
class Band(models.Model):
creator = models.ForeignKey( User )
# some fields omitted
name = models.CharField( max_length=40 )
所以基本上,我有一个用户实体,其中有许多与带实体一对多的关系。转折是,我想要一个特殊的用户,谁“创造”乐队的网站上有专门的编辑功能。于是,我走上前去,并添加了一个名为创造者ForeignKey的。该代码无法运行,因为乐队用户在源后,就来了。所以我向前声明class Band(models.Model): pass
。可悲的是,这似乎并没有被exatly一个好主意,因为现在队是不显示在Django管理的任何界面元素的唯一模式(带模型是存在的,只是不能进行编辑)。
我的问题是我应该做的模型怎样的变化适当地得到这个工作? (如果有的话)
解决方案
请参阅: http://docs.djangoproject.com/en的/ dev / REF /模型/场/#外键,该表示:
如果您需要创建一个没有模型的关系 尚未被定义,您可以使用该模型的名称,而 比模型对象本身:
class Car(models.Model):
manufacturer = models.ForeignKey('Manufacturer')
# ...
class Manufacturer(models.Model):
# ...
不隶属于 StackOverflow