django - 我应该修改/扩展管理界面,还是编写自己的 CRUD View /模板?

标签 django django-admin

我正在尝试用 Django 编写一个简单的 CRM 应用程序;部分作为学习练习,部分供内部使用。

我的模式有点复杂,因为只有一个联系人模型(有家庭电话、工作电话、家庭电子邮件等),我已经剥离了 Cntact 模型加上电话模型、电子邮件模型等。 , 外键指向联系人。重点是让联系人拥有任意数量的电话号码、电子邮件地址等。很简单,对吧?

我有一些用于显示数据的工作 View 和模板 - 没有问题。只需在 admin.py 上进行少量操作,我就有了一个嗯...设置了八个不同的 TabularInlines,并且管理界面可以创建和编辑数据...但它丑陋笨拙到无法使用的地步,当然没有权限或任何概念。我也不太喜欢使用完全不同的界面来显示和搜索数据,而不是编辑和添加联系人……我希望尽可能多地在线完成,这样我就可以搜索名称,查看记录,单击“添加注释”,让它弹出一个表单,填写详细信息,单击提交,然后完成,所有这些都采用 AJAXy 技术,因此不会重新加载页面。

问题:我是否应该着手修改管理界面以尝试使其可用于面向用户的应用程序?如果是这样,谁能给我指出一个很好的指南或示例,其中有人真正更改了管理界面以使其适用于面向用户的 CRUD 操作?

还是我应该继续编写自己的 CRUD View ?如果是这样,谁能给我指出一个很好的指南或示例,其中有人编写了可与大量外键和内联一起使用的自定义 CRUD View ?理想情况下,我想要一个显示单个联系人的表单,他的所有电子邮件记录,以及用于添加新电子邮件记录的空白表单,以及用于添加更多空白表单的按钮,以及他的电话记录,以及空白表单等等我的所有 8 个关联模型。

(或者我在想这一切都是错误的?任何建议表示赞赏。)

最佳答案

对于我们的 Intranet,我们为大多数 C(R)UD View 使用 ModelAdmin 子类(未通过 admin.site.register 安装在管理站点上)。通过为 View 使用自定义模板,它看起来一点也不像 Django admin。不过,非常方便的是,它已经为我们处理了所有验证/保存。

总的来说,我发现 admin-"hacking"对于快速编写 C(R)UD View 非常有用,通常只需对您的 ModelAdmin 子类进行相对较小的更改,您就可以使其适用于您的用例。

所以我会投票使用 ModelAdmin,但不是您在管理中使用的那个, Hook 一个不同的模板并提出一些花哨的 CSS。

关于django - 我应该修改/扩展管理界面,还是编写自己的 CRUD View /模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5493567/

相关文章:

python - 查询集的加权平均值 - Django

python - Firebase 身份验证和 Django/Djangae

mysql - 在 Django 中使用 auto_now_add 保存模型实例返回错误消息 Column 'xxx' cannot be null

python - 密码字段在 Django 管理站点中可见且未加密

django - 使用内联时如何验证 django-admin 中两个模型的数据?

python-3.x - 如何使用 CSRF token 从 flutter 到 django 发出发布请求。从 Flutter 应用程序向 Django 后端发布请求会出现 CSRF 错误。如何解决这个问题

python - Django 在 ModelForm 的 "other"模型上包含 ManyToManyField

django - 值对于类型字符变化来说太长(30)

python - 如何加速 Django 管理页面?

python - Django-s3direct上传图片