Как избавиться от дополнительной информации об изображении (текущее изображение, снять флажок) при рендеринге Django формы с Imagefield? - PullRequest
0 голосов
/ 19 апреля 2020

У меня есть форма модели, содержащая поле изображения, но при рендеринге мой шаблон добавляет немного дополнительной информации о текущем изображении (пути), поэтому он выглядит следующим образом:

Сейчас: user1 / Avatar.png

Изменение: (Выберите файл ...)

Я бы хотел избавиться от этого "Сейчас: ..." , поэтому он показывает только Выберите файл .. . Когда в поле профиля модели профиля задано значение null = True, пусто = True, он также отображает флажок для очистки аватара, чего я тоже не хотел бы иметь.

models.py

class Profile(models.Model):
    name = models.CharField(max_length=250)
    avatar = models.ImageField(upload_to=user_directory_path)

forms.py

class ProfileForm(forms.ModelForm):
    class Meta:
        model = Profile
        fields = ('name', 'avatar')

template

<section class="container">
    <form action="." id="Form" enctype='multipart/form-data' method="POST">
        {{ profile_form.as_p }}
        {% csrf_token %}
        <p> <input type="submit" value="Update!"/> </p>
    </form>
</section>

РЕДАКТИРОВАТЬ: я добавил в свою ProfileForm

widgets = {
            'avatar': FileInput(),
        }

Теперь это не ' Эти дополнительные вещи не отображаются, но он также, похоже, не «запоминает», какой аватар в настоящее время связан с пользователем, и каждый раз, когда я нажимаю «обновить», чтобы изменить имя, я также должен загрузить новый аватар.

...