1

众所周知,django 为您的项目提供了一个非常基本但灵活的管理面板。我在这里看到了有关(不利)优势的讨论。编写自己的控制界面并使用默认的。只是为了概括一下,我会提到imodjango.contrib.admin用于不需要任何复杂内容管理的快速简单的项目;因此,对于网站的绝对控制和完全定制,可能应该实现一个适当的管理界面。

我想尝试为我正在处理的项目推出自己的管理员,但真的不想重新设计轮子,所以也许我可以将 django 的管理员用作我的项目中的插件应用程序,以我想要的方式自定义它? 您对如何完成有任何想法吗?也许已经有一些类似的应用程序?

4

1 回答 1

2

我没有任何建议,django.contrib.admin因为我不使用它。我的客户更喜欢他们网站的几乎类似于 CMS 的内联更新(两个“版本”让他们感到困惑),我更喜欢额外的控制。

那么,在这种情况下,您曾经使用过django.forms吗?Django 表单将为您提供一种根据您的需要接受和验证输入的简单方法。您可以使用自己的自定义字段扩展表单,并自定义它们的验证ValidationError因此,例如,如果输入的字符串包含您想要省略的字符,您可以将字段添加到引发 a 的表单中。Django 有很多有用的输入字段,包括EmailField.

下一个真正的大技巧是django.forms.ModelForm。这提供了一种非常简单的方法来快捷地编写自定义表单,然后将其插入到正确的对象中,然后将其保存到数据库中。它为你做。所有的。从字面上看,你这样做:

fItem = ItemForm(request.POST) 
# or
# I = Item.objects.get(id=?)
# fItem = ItemForm(request.POST, instance=I) 

if f.is_valid():
    fItem.save()

从此并使用表单,您可以非常轻松地自己创建 CRUD 操作。

接下来要实现的是用户、组和权限。没有什么可以阻止您为此使用提供的身份验证内容并提供您自己的 UI。您也不必使用实际的管理站点;两者没有捆绑在一起。

我个人推出了我倾向于使用的自己的产品,因为在我的一项工作中,客户对身份验证和授权有特定的要求。不过我不推荐它——只使用那里的东西。特别是因为现在有身份验证后端,例如Django-SocialAuth

于 2011-02-03T17:40:55.510 回答