我有一个 profile_picture=ImageField 字段设置为初始值的表单。它正在使用 ClearableFileInput 小部件。我需要在模板中自定义表单,所以我不能简单地使用 {{ form.profile_picture}} 。如何拆分字段元素并获得如下所示的内容:

{{ with picture=form.profile_picture }}
{{ picture.label_tag }}
<a href="{{ picture.url }}">
  <img src="{{ picture.url }}">
</a>
{{ picture.clear-picture }}
{{ picture.clear-picture }} 应生成复选框以删除旧图片的位置

最佳答案

@vadimchin's answer 是正确的,但它需要对 Django 的新版本(2.0 及更高版本)稍作修改,因为 ClearableFileInput 类已更改。

您必须通过在模板目录中创建另一个模板来覆盖 template_nameClearableFileInput 属性。例如:

class CustomClearableFileInput(ClearableFileInput):
    template_name = 'widgets/customclearablefileinput.html'

并用所需的代码填充 customclearablefileinput.html,根据需要修改模板的 the original code

您还必须在 settings.py 文件中进行更改,以便 Django 允许您从项目模板目录中获取 override widget templates:将 'django.forms' 添加到 INSTALLED_APPS ,然后添加以下代码:
FORM_RENDERER = 'django.forms.renderers.TemplatesSetting'

关于django - 在 django 模板中自定义 ClearableFileInput,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34615801/

10-16 22:51