Django FORM_RENDERER 仅用于前端

Django FORM_RENDERER for frontend only

默认情况下,Django 使用此设置确定表单小部件的来源:

FORM_RENDERER = 'django.forms.renderers.DjangoTemplates'

由于我们希望删除所有标签并应用一些覆盖,因此更改为:

FORM_RENDERER = 'django.forms.renderers.TemplatesSetting'

这一切都适用于前端。但是,它使后端无法使用,因为现在那里的所有标签也都被删除了。

我的问题是,如何让 Django 使用管理员的原始设置?

看来你不能把前端和后端分开。最后,我最终创建了我在整个前端使用的自定义 form/widget classes。

步骤是:

  1. 在模板文件夹中保留 Django 表单的原始副本
  2. 在您自己的模板文件夹中创建您需要的每个小部件模板的副本
  3. 创建自定义表单 class 覆盖 init 中的 template_name 以强制使用您的自定义模板。这种形式class可以看作是混合