Jul*_*ska 5 python django django-custom-user wagtail
我正在按照 Wagtail 文档来自定义用户模型。我想将图像添加到用户模型中。
Django 版本:2.0.8,Wagtail 版本:2.1
问题
使用图像选择器字段选择图像并单击“保存”后,出现以下错误:
'没有提交文件。检查表单上的编码类型。”
代码
模型.py
from django.db import models
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
display_image = models.ForeignKey('wagtailimages.Image',
null=True,
blank=True,
on_delete=models.SET_NULL,
related_name='+')
Run Code Online (Sandbox Code Playgroud)
表格.py
from django import forms
from django.utils.translation import ugettext_lazy as _
from wagtail.users.forms import UserEditForm, UserCreationForm
from wagtail.images.widgets import AdminImageChooser
class CustomUserEditForm(UserEditForm):
display_image = forms.ImageField(
widget=AdminImageChooser(), label=_('Autorenbild'))
class CustomUserCreationForm(UserCreationForm):
display_image = forms.ImageField(
widget=AdminImageChooser(), label=_('Autorenbild'))}
Run Code Online (Sandbox Code Playgroud)
编辑.html
{% extends "wagtailusers/users/edit.html" %}
{% block extra_fields %}
{% include "wagtailadmin/shared/field_as_li.html" with field=form.display_image %}
{% endblock extra_fields %}
{% block extra_js %}
{{ block.super }}
{% include 'wagtailadmin/pages/_editor_js.html' %}
{% endblock extra_js %}
Run Code Online (Sandbox Code Playgroud)
create.html 类似
到目前为止我尝试过的
AdminImageChooser使用我在这里找到的小部件的想法。我必须通过添加来调整表单,forms.ImageField以便用户页面显示没有错误。
问题
有人知道为什么会出现错误以及如何修复它吗?
正如上述 Google 小组帖子中所述,向用户模型添加图像似乎“有点尴尬”。将图像连接到用户以便在网站中重复使用的更好方法是什么?要求是可以在 Wagtail 管理中轻松更改图像。
Wagtail 2.2 版的其他问题
AdminImageChooser在管理界面的“设置”>“用户”中,未打开的窗口。
控制台显示以下 JS 错误:
未捕获的 ReferenceError:createImageChooser 未定义
小智 1
在同一个 Google 群组线程中使用最后提出的解决方案,ReferenceError: createImageChooser is not defined从 Wagtail 2.1 更新到 2.2 后也遇到了 js 问题
以下是我的研究进展:
看起来这个提交从 _editor_js.html 中删除了直接媒体 js 包含。
好的,解决方案是复制旧的行为,并访问小部件的媒体子类
首先,我尝试将相同的删除行添加到我自己的 edit.html 中{% block extra_js %}。不工作。
看起来有些视图又回来了edit_handler,就像这里一样。用户视图没有。
然而,用户视图在创建和编辑视图中提供的是表单变量。让我们使用它吧。
我的最终解决方案是更改 edit.html 中的 extra_js 块,如下所示:
{% block extra_js %}
{{ block.super }}
{% include 'wagtailadmin/pages/_editor_js.html' %}
{{ form.media.js }}
{% endblock extra_js %}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3191 次 |
| 最近记录: |