【问题标题】:Changing Django Flatpage Label to another name in Django admin dashboard在 Django 管理仪表板中将 Django Flatpage 标签更改为另一个名称
【发布时间】:2011-11-10 03:18:47
【问题描述】:

我对 django 很陌生,我正在尝试在要创建的站点之一中使用平面页面模块。我可以为管理员用户设置一切以使用 flatpage 模块创建页面,但现在的问题是我想更改显示在管理仪表板上的 Flatpages 名称,并使用对最终用户有意义的东西。例如,“管理静态页面”之类的名称或类似名称。从文件中我可以理解 META 类是更改标签所需要的,但我不确定如何使用它以及在哪里使用它。请帮我。谢谢

【问题讨论】:

    标签: python django django-flatpages


    【解决方案1】:

    我对 Django 也很陌生,但这是我的尝试:

    在你的 models.py 中,你需要重写 FlatPage 模型,为它提供你自己的 Meta 类,所以你应该做如下的事情:

    from django.contrib.flatpages.models import FlatPage
    
    
    class MyFlatPage(FlatPage):
    
        class Meta:
            verbose_name = 'Static Page' # your overridden name here
    

    这将为您的模型设置名称,该名称将出现在管理员中。然后你必须注册它才能出现在管理员中。

    from myapp.models import MyFlatPage
    from django.contrib.flatpages.models import FlatPage
    
    
    admin.site.unregister(FlatPage)
    admin.site.register(MyFlatPage, admin.ModelAdmin)
    

    然后你应该被设置!同样,有人可能会提出更好的答案。我还在学习!

    【讨论】:

    • 但是,这会将“静态页面”放入您在其中定义的 models.py 应用程序的命名空间中。
    • 非常感谢,您的建议帮助我更改了名称,但在单击平面页面(现在使用新名称)链接时,会引发错误,提示找不到表。正如我在问题中所说,我不确定我将在哪里添加特定于 Flatpages(或任何其他内置 django 应用程序)的代码。所以我所做的是创建一个名为 common 的 APP,然后创建了一个 model.py 和 admin.py,我在其中添加了代码。我确信这不是要走的路,但同时我不确定我应该在哪里添加上述 models.py 和 admin.py 文件。对这些事情的任何投入都会对我有很大帮助。谢谢
    • @swarwoop - 好点。不确定您的常见应用程序创意是否是最好的,但对我来说似乎是合理的。我也一直在为这个想法而苦苦挣扎。到目前为止,Django 文档在这方面很薄弱,所以我正在寻找我能找到的任何方法。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2015-03-12
    • 1970-01-01
    • 1970-01-01
    • 2018-11-09
    • 2012-01-04
    • 1970-01-01
    • 2016-08-22
    • 2014-02-22
    相关资源
    最近更新 更多