众所周知,django为您的项目提供了一个非常基本但灵活的管理面板。我在这里看到的讨论提到了(dis)的优点。编写自己的控制界面并使用默认控制界面。仅仅为了重新概括,我会提到, imo ,django.contrib.admin
用于快速简单的项目,不需要任何复杂的内容管理;因此,对于站点的绝对控制和完全自定义,可能应该实现足够的管理界面。
我想尝试将我自己的管理员用于我正在进行的项目,但是我真的不想重新启动方向盘,所以也许我可以在我的项目中使用django的管理员作为插件应用程序来定制方式我想要?你有什么想法可以做到吗?也许已经有一些simmilar应用程序?
答案 0 :(得分:2)
我对django.contrib.admin
没有任何建议,因为我不使用它。我的客户更喜欢他们的网站几乎类似CMS的内联更新(两个“版本”混淆了他们),我更喜欢额外的控制。
那么,就此而言,你曾经使用过django.forms吗? Django表单将为您提供一种根据您的需求接受和验证输入的简便方法。您可以使用自己的自定义字段扩展表单,并自定义their validation。因此,例如,如果输入的字符串包含您要省略的字符,则可以向表单中添加字段ValidationError
。 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操作。
接下来要实现的是用户,组和权限。没有什么可以阻止你使用提供的身份验证的东西,并提供自己的用户界面。您也不必使用实际的管理站点;两者没有联系在一起。
我个人推出了我自己使用的内容,因为在我的一个工作中,客户端对身份验证和授权有特定的要求。我不推荐它 - 只是使用那里的东西。特别是因为现在有authentication backends,例如Django-SocialAuth。