需要“起点”关于添加“选项卡式”的提示Django 管理界面

发布于 2024-08-31 11:41:12 字数 189 浏览 7 评论 0原文

我是 Web 开发世界的新手 - 这意味着我是 javaScript/CSS 的新手。现在我正在使用 Python Django 构建一个 Web 系统。我想知道您愿意给我一些提示作为向 Django 管理添加“选项卡式”界面的起点吗?

例如,主表有 3 个详细表,我想使用 3 个不同的选项卡在主表的“编辑”页面中编辑这 3 个详细表。先感谢您!

I'm new to the web development world - that means I'm new to javaScript/CSS. Now I'm building a web system with Python Django. I'm wondering would you like to give me some hints as the starting point for adding "tabbed" interface to Django admin?

For example, there are 3 detail table for a master table, and I want to use 3 different tabs for editing that 3 detail tables in the 'edit' page for the master table. Thank you in advance!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

似狗非友 2024-09-07 11:41:12

首先,您需要决定是否使用 javascript 或覆盖模板来解决此问题。根据您的要求,这两种都是很好的解决方案。

一种简单的方法来做到这一点,并且您可以采取的第一种方法来开始测试这一点是将每个选项卡放在不同的fieldset ,然后制作一个选项卡式界面来显示/隐藏它们。它的优点是它是一种非常简单的方法,缺点是如果不开始使用 javascript 更改大量 DOM,则没有太多灵活性。

您应该考虑到,如果您更改选项卡,用户可能会忘记他们更改了某些内容并在没有保存的情况下离开,因此警告他们离开页面而不保存页面总是一个好主意。

另一种方法是覆盖该特定模型的 change_form 模板,并将新选项卡链接到相同的 url 但具有不同的 GET 参数,例如。 .../mymodel/?active_tab=2 并在模板/视图中检查并呈现适当的内容。这样做最显着的优点是用户不需要启用 JavaScript。

您可以查看 django-cms 可以。它有一个非常漂亮的选项卡式界面,可以在不同语言之间进行切换。决定如何开始做某事的最佳方法之一就是看看其他人是如何做的。浏览源代码,安装它并开始实验!

希望这有帮助。

编辑

另一个示例方法是此处。仅仅浏览附加的补丁比完整的 django-cms 代码更容易。干杯。

First of all you need to decided whether solve this with javascript or by overriding the templates. Both of these are good solutions depending on your requirements.

One easy way to do this, and a first approach you can take to start testing this is to put every tab in a different fieldset and afterwards make a tabbed interface to show/hide them. It's pros is that it's a really easy way to do it, a cons that you don't have much flexibility without start changing to much DOM with javascript.

You should take in consideration that if you change tabs the user might forget they changed something and leave without saving, so an alert they are leaving the page and not saving it is always a good idea.

Another approach is to override the change_form template for that particular model and link new tabs to the same url but with different GET parameters, eg. .../mymodel/?active_tab=2 and check this in the template / view and render the appropiate content. The most notable pro of doing it this way is that the user doesn't need to have javascript enabled.

You can check out how django-cms does it. It has a very nice tabbed interface to change between different languages. One of the best ways to decide how to start doing something is checking out how others did it. Browser the source code, install it and start experimenting!

Hope this helps.

EDIT

Another example approach is here. It's easier to just go through the patch attached than the complete django-cms code. Cheers.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文