有没有一种简单的方法可以完全自定义 Django 管理站点以显示不是字段的变量?
Is there an easy way to completely customize Django Admin Site to display variables that are not fields?
我知道我可以覆盖模板,而且我过去曾更改过添加模型表单和更改模型表单。但是,我发现覆盖模板有点混乱,而且很难完全自定义。我的问题是我想显示(带有可编辑的文本框)不是字段的变量,而且我很难弄清楚如何执行此操作。因为 Django 模型字段不能是列表(我知道你可以把它做成一个字符串,然后像列表一样解析它),但基本上我想把我所有的信息存储在一个字段中(因为它们都是相关的,不会让我的已经很长的模型甚至更长),但随后将它们作为单独的字段显示在管理站点上。这是可能的还是有一种简单的方法可以在不完全覆盖模板代码的情况下做到这一点?此外,当我查询要存储的变量的最大字段数量时,它肯定会限制我的模型。所以我有 8 个字段以防万一,但我的大多数模型只使用其中的 2 个或 3 个字段,而且由于我不知道将要使用多少个字段,所以我希望它是动态的。例如。
我的模型是这样的:
models.py
class MyModel(Model.model):
field1 = models.FloatField(null=True, blank=True)
field2 = models.FloatField(null=True, blank=True)
field3 = models.FloatField(null=True, blank=True)
field4 = models.FloatField(null=True, blank=True)
field5 = models.FloatField(null=True, blank=True)
field6 = models.FloatField(null=True, blank=True)
field7 = models.FloatField(null=True, blank=True)
field8 = models.FloatField(null=True, blank=True)
理想情况下,我希望将所有信息作为字符串存储在一个字段中,当我解析它时,它就像一个列表。
class MyModel(Model.model):
field = models.FloatField(null=True, blank = True)`
但是,我想在我的管理站点上仅显示一个字段中的 8 个框。如果不对模板代码进行重大重构,这是否可能?
如有任何帮助,我们将不胜感激!
管理页面只是 django 源代码中的一个应用程序,就像您可以编写的任何其他应用程序一样。所以从这个意义上说,它可以完全定制。我建议您查看
中的源代码
<wherever you keep django>/django/contrib/admin
看看它目前是如何实现的,你可以c/p任何代码并根据需要修改它。
但是有没有一种简单的方法可以在不进行重大重建的情况下按照您想要的方式完全自定义它?我不这么认为。
我知道我可以覆盖模板,而且我过去曾更改过添加模型表单和更改模型表单。但是,我发现覆盖模板有点混乱,而且很难完全自定义。我的问题是我想显示(带有可编辑的文本框)不是字段的变量,而且我很难弄清楚如何执行此操作。因为 Django 模型字段不能是列表(我知道你可以把它做成一个字符串,然后像列表一样解析它),但基本上我想把我所有的信息存储在一个字段中(因为它们都是相关的,不会让我的已经很长的模型甚至更长),但随后将它们作为单独的字段显示在管理站点上。这是可能的还是有一种简单的方法可以在不完全覆盖模板代码的情况下做到这一点?此外,当我查询要存储的变量的最大字段数量时,它肯定会限制我的模型。所以我有 8 个字段以防万一,但我的大多数模型只使用其中的 2 个或 3 个字段,而且由于我不知道将要使用多少个字段,所以我希望它是动态的。例如。
我的模型是这样的:
models.py
class MyModel(Model.model):
field1 = models.FloatField(null=True, blank=True)
field2 = models.FloatField(null=True, blank=True)
field3 = models.FloatField(null=True, blank=True)
field4 = models.FloatField(null=True, blank=True)
field5 = models.FloatField(null=True, blank=True)
field6 = models.FloatField(null=True, blank=True)
field7 = models.FloatField(null=True, blank=True)
field8 = models.FloatField(null=True, blank=True)
理想情况下,我希望将所有信息作为字符串存储在一个字段中,当我解析它时,它就像一个列表。
class MyModel(Model.model):
field = models.FloatField(null=True, blank = True)`
但是,我想在我的管理站点上仅显示一个字段中的 8 个框。如果不对模板代码进行重大重构,这是否可能?
如有任何帮助,我们将不胜感激!
管理页面只是 django 源代码中的一个应用程序,就像您可以编写的任何其他应用程序一样。所以从这个意义上说,它可以完全定制。我建议您查看
中的源代码<wherever you keep django>/django/contrib/admin
看看它目前是如何实现的,你可以c/p任何代码并根据需要修改它。
但是有没有一种简单的方法可以在不进行重大重建的情况下按照您想要的方式完全自定义它?我不这么认为。