有没有一种简单的方法来完全自定义Django管理站点以显示非字段的变量?

时间:2015-08-03 17:38:21

标签: django python-2.7 django-models django-templates django-admin

我意识到我可以覆盖模板,并且我过去曾改变添加模型表单和更改模型表单。但是,我发现覆盖模板有点令人困惑,很难完全自定义。我的问题是我想显示(带有可编辑的文本框)非字段的变量,我很难弄清楚如何做到这一点。因为Django模型字段不能是列表(我知道你可以将它变成一个字符串,然后像列表一样解析它),但基本上我想将我的所有信息存储在一个字段中(因为它都是相关的并且不会使我的已经很长的模型甚至更长),但然后在管理网站上显示它们作为单独的字段。这是否可行或是否有一种简单的方法可以在不完全覆盖模板代码的情况下执行此操作?此外,它肯定限制了我的模型,因为我查询了我想要存储的变量的最大字段数。所以我有8个字段以防万一,但我的大多数模型只使用2或3个字段,因为我不知道将使用多少字段,Id喜欢它是动态的。所以举个例子。

我的模型会是这样的:

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个框。如果没有模板代码的重大重建,这可能吗?

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

管理页面只是django源代码中的一个应用程序,就像您可以编写的任何其他应用程序一样。所以从这个意义上说,它可以完全定制。我建议您查看

中的源代码
<wherever you keep django>/django/contrib/admin

并了解它目前是如何实现的,您可以随意修改任何代码并根据需要对其进行修改。

但有没有一种简单的方法可以按照您未经重大重建的方式进行完全自定义?我不这么认为。