Я следую документации Wagtail, чтобы настроить пользовательскую модель . Я хочу добавить изображение в модель пользователя.
Django версия: 2.0.8,
Версия трясогузки: 2.1
Задача
После выбора изображения в поле выбора изображения и нажатия кнопки «Сохранить» появляется эта ошибка:
'Файл не был отправлен. Проверьте тип кодировки в форме. '
Код
models.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='+')
forms.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'))}
edit.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 %}
create.html аналог
Что я пробовал до сих пор
Идея использовать виджет AdminImageChooser
, который я нашел здесь . Мне пришлось скорректировать формы, добавив forms.ImageField
, чтобы страница Пользователь отображалась без ошибок.
Вопросы
Кто-нибудь знает, почему возникает ошибка и как ее исправить?
Как указывалось в приведенной выше ветке группы Google, кажется, что добавление изображения в пользовательскую модель «немного неудобно». Как лучше подключить изображение к пользователю для повторного использования на сайте? Требуется, чтобы изображение можно было легко изменить в Wagtail admin.
Другая проблема с версией Wagtail 2.2
В Настройках> Пользователь в интерфейсе администратора окно AdminImageChooser
не открывается.
Консоль показывает следующую ошибку JS:
Uncaught ReferenceError: createImageChooser не определен