【问题标题】:Customizing Django Admin Interface functionality自定义 Django 管理界面功能
【发布时间】:2010-09-21 08:28:01
【问题描述】:

我是 django 的新手,在尝试使管理站点按我希望的方式工作时有点卡住了。我想知道是否要制作我想要的管理功能,最好使用从 admin/base_site.html 继承的模板制作自定义管理应用程序,当 is_staff 为真时使用带有重定向的前端登录。

让我这么想的最初细节:

  1. 我有一个外键链,想在父管理页面上显示嵌套的内联。我试过使用easymode,但它有自己的问题和要求,以后可能会让人头疼,我可以不用。

  2. 我想添加一个函数,允许管理员添加模型的实例,这会触发其相关模型和重定向等实例的创建。这至少需要添加一些可调用对象,我还没有弄清楚但是如何在管理模型中真正取得成功,目前似乎更容易在我自己的应用程序的views.py中快速做到这一点,而不是试图玩弄管理视图。

一般来说,从长远来看,创建自定义管理应用程序(在前端登录时使用 is_staff=true 重定向)似乎更灵活,并且会为客户端带来更设计和更直观的管理界面 - 所以我想我的问题是,半职业选手在做什么? (如果您知道如何将管理视图和模板破解为您的核心内容,那么您就不是半专业人士:))

感谢您提供的任何建议,我的脚仍然湿透了,这种建议可以为我节省大量时间和头痛。

【问题讨论】:

  • 使用 django.contrib.admin,不要自己写。那样就很疯狂(根据我这样做的经验,然后厌倦了所有的重复性,然后回到管理员那里)。
  • 呃,该死的。那么在这种情况下,我缺少一些用于向管理员编写功能的文档,例如使用可调用对象(管理模型中的定义),自定义 admin.py 以在同一视图中显示相关项目(嵌套外键),添加链接更容易导航到相关项目......这方面的django文档不是很清楚,任何指针?
  • 为您遇到的每个问题在 Stack Overflow 上写一个单独的问题(可能一次做一个,这样人们就不会因为您向网站发送垃圾邮件而生气!)确保问题是标记django。这里有很多人非常了解 Django,他们很乐意提供帮助。
  • 好的,会的。谢谢多米尼克。

标签: python django customization admin


【解决方案1】:

慢点。放松。遵循 Django 哲学。

  1. 您有一个“应用程序”。它呈现数据。专注于演示。

  2. 您的“应用程序”有一个默认的内置管理员。它更新数据并且已经存在。

  3. 如果管理应用程序不能满足您的需求,请更新表单并更新模型以接近。但不要让自己与管理员混淆。尽可能靠近。但是放松一下。

[此外,“更直观的管理员”有时并不能准确描述您正在尝试做的事情。可能是,但我见过一些“更直观的”实际上不是。]

为客户设计的更直观的管理界面。

这是应用程序的一部分吗?应用程序是否更多不仅仅是呈现数据?

如果应用程序是事务性的——添加、更改、删​​除——粗鲁规则——诸如此类的事情,那么这就是你的应用程序。如果你想要一个花哨的用户界面,那不再是管理员了。没有重定向。那是你的应用程序。

这只是编码。停止与管理员纠缠并开始编写您的应用程序。

提示:尽可能使用通用视图。

除此之外,您是在谈论您的应用程序,而不是破解已经有效的管理内容。

如果您知道如何将管理视图和模板破解为您的心愿,那么您就不是半专业人士

错了。所有的来源都在那里。你也可以阅读它。这就是专业人士所做的。我们阅读了源代码。而且我们不会破解管理应用程序。

如果您有复杂的交易,那么您就有了一流的、真实的、实际的应用程序。不是默认管理员,而是您应用中具有表单的一部分。

如果你有表格,那么,你有表格。这不需要破解管理应用程序,它只是为您的应用程序编写更多代码。

【讨论】:

  • 哈哈,我喜欢开场白:慢点,放松!希望我能,但我做出了奢侈的承诺:)
  • 感谢您的澄清,您的观点 3。我认为是答案,更新表单和模型以接近,但不要弄乱管理应用程序。 “如果你想要一个花哨的用户界面,那不再是管理员,那是你的应用程序”这个我必须考虑一下 :) 再次感谢您的建议!
  • 是的,我也选择了这个选项,并且正在为功能的这些部分制作视图。这更像是我为另一个“最终管理员”制作的,所以这就是为什么我希望它“直观”地进行管理。是的,我谨慎使用这个词...
【解决方案2】:

也请浏览这篇文章中提到的链接。这可能对您有帮助。

Is Django admin difficult to customize?

【讨论】:

    猜你喜欢
    • 2018-06-27
    • 1970-01-01
    • 2016-04-17
    • 2012-12-11
    • 1970-01-01
    • 2011-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多