Django 管理界面中的 Exclusive 或 ForeignKey
Posted
技术标签:
【中文标题】Django 管理界面中的 Exclusive 或 ForeignKey【英文标题】:Exclusive Or ForeignKey in Django admin interface 【发布时间】:2011-01-15 17:10:04 【问题描述】:在 Django 中,有没有一种方法可以强制管理员用户选择填充几个 ForeignKey 中的一个,而不是超过一个?
我有一个类似的模型:
类 URL(models.Model): ... links = models.URLField(_('Google Links'),verify_exists=True,unique=True) project = models.ForeignKey(Project,blank=True,null=True) category = models.ForeignKey(Category,blank=True,null=True) person = models.ForeignKey(ExternalPerson,blank=True,null=True) ...
我希望管理员用户选择外键项目、类别或人员之一。 或者我应该以不同的方式组织模型?
【问题讨论】:
【参考方案1】:我所做的是拥有一个指向基本模型的单个外键,所有其他模型(Google 链接、项目等)都从该模型继承。这似乎在保持关系的同时将外键限制为单一选择。
【讨论】:
【参考方案2】:只是一些想法......
我不知道您以后想对这些对象做什么,但是您是否考虑为所有对象创建一个通用接口?它可以解决您的问题...
如果界面不适合你,也许你可以创建一个表单来检查是否只选择了一个外键。
【讨论】:
以上是关于Django 管理界面中的 Exclusive 或 ForeignKey的主要内容,如果未能解决你的问题,请参考以下文章