假设我有这些模型作为一个简单的例子:
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
以便在添加/更改表单中也有它。
任何建议将不胜感激。 谢谢!
注意:我知道如果我在 Event
中也有 AppConfig
作为外键,这可能很容易解决,但事实并非如此真的很有道理。
编辑: 我的 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
关于python - 添加/更改表单中的 ForeignKey 字段 - Django admin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52066617/