添加/更改表单中的ForeignKey字段 - Django admin
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了添加/更改表单中的ForeignKey字段 - Django admin相关的知识,希望对你有一定的参考价值。
假设我将这些模型作为一个简单的例子:
class Event(models.Model):
name = models.CharField(max_length=50, default='')
app = models.ForeignKey(App)
class App(models.Model):
name = models.CharField(max_length=50, default='')
app_config = models.ForeignKey(AppConfig)
class AppConfig(models.Model):
type = models.CharField(max_length=50, default='')
is_valid = models.BooleanField(default=True)
我想创建一个管理页面,其中包含Event
的添加/更改表单,这将允许我选择一个App
并创建包含其所有字段的AppConfig
。
基本上,要有一个下拉列表选择一个App
,在它下面填写AppConfig
字段。或者甚至只是一个“+”符号或链接将弹出一个表单来创建一个AppConfig
。
我看到了很多关于如何将它添加到list_display
(例如this)的例子,但是无法用fields
或fieldsets
做同样的事情,以便在添加/更改形式中使用它。
任何建议将不胜感激。谢谢!
注意:我知道如果我在AppConfig
中将Event
作为外键,这可能很容易解决,但这并没有多大意义。
编辑:我的Django和Python版本: Python:2.7.x Django:1.7.4
Edit2:我发现这个很好的开源代码django_reverse_admin可能会有所帮助,但首先,这个特定的软件包只支持Django 2.0+。我试图使用原来的代码,似乎支持以前的Django版本,但没有设法将其应用于我的具体情况。 如果有人有想法或者可以告诉我如何在我的特定情况下使用它,这将是伟大的。谢谢!
通过此软件包,您可以通过向模型添加自定义外键或多个字段来快速筛选或分组“链式”模型。这将使用AJAX查询仅加载适用的链接对象。
https://github.com/digi604/django-smart-selects
我想,解决方案已经在这里讨论了How to filter a dropdownlist in Django's admin when a selection is made on another dropdownlist
以上是关于添加/更改表单中的ForeignKey字段 - Django admin的主要内容,如果未能解决你的问题,请参考以下文章
允许 Django 模型 ForeignKey 字段的表单上的 TextInput