python – 前向声明 – django中没有管理页面?

python – 前向声明 – django中没有管理页面?,第1张

概述这可能是数据库设计问题,但我无法弄清楚.在其他几个方面,我有这些模型: class User(models.Model): name = models.CharField( max_length=40 ) # some fields omitted bands = models.ManyToManyField( Band ) 和 class Band(models.Model): 这可能是数据库设计问题,但我无法弄清楚.在其他几个方面,我有这些模型:

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 )

所以基本上,我有一个用户实体,它与一个带实体有很多很多关系.扭曲的是,我想要一个特殊的用户,他在网站上“创建”了乐队以获得特殊的编辑功能.所以我继续前进,并添加了一个名为creator的ForeignKey.代码无法运行,因为Band来自源中的User.所以我转发声明的类Band(models.Model):pass.遗憾的是,这似乎并不是一个好主意,因为现在Band是唯一没有在django admin中显示任何界面元素的模型(Bands模型就在那里,它只是无法编辑).

我的问题是,我应该在模型中做出哪些改变才能使这项工作正常进行? (如果有的话)

解决方法 见: http://docs.djangoproject.com/en/dev/ref/models/fields/#foreignkey,其中说:

If you need to create a relationship on a model that has not
yet been defined,you can use the name of the model,rather
than the model object itself:

class Car(models.Model):      manufacturer = models.ForeignKey('Manufacturer')      # ... class Manufacturer(models.Model):      # ...
总结

以上是内存溢出为你收集整理的python – 前向声明 – django中没有管理页面?全部内容,希望文章能够帮你解决python – 前向声明 – django中没有管理页面?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1194427.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存