【发布时间】:2019-02-03 14:29:15
【问题描述】:
假设我有这些模型作为一个简单的例子:
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 版本的原始代码,但没有设法将其应用于我的特定案例。
如果有人有想法或可以告诉我如何在我的特定情况下使用它,那就太好了。谢谢!
【问题讨论】:
-
你尝试过管理员内联吗?
-
嘿@Walucas - 管理员内联是相反的方式。它们用于相反的方向。我实际上最近找到了django_reverse_admin,但无法让它适用于我的案例。如果有人可以展示一种使用它来解决我的具体案例的方法,那就太好了!谢谢!
-
现在还不清楚你想要什么......据我了解,你想在一个管理页面中管理三个(或两个)模型,是吗?
-
@Walucas 我想要一个
Event管理页面,在为该事件选择App之后,能够编辑它的AppConfig字段,所有这些都在同一个管理员添加/改变形式。谢谢! -
明白了!你想要一个嵌套的内联像:github.com/theatlantic/django-nested-... 或 github.com/BertrandBordage/django-super-inlines 看看,让我知道
标签: python django django-forms django-admin