@kvarel

DJANGO Как добавить изображения в Select из БД?

Задача - создать форму, в которой есть поле для выбора одного из юзеров. В выпадающем списке должен отображаться аватар юзера и его имя.

Создана модель для расширения модели User.
class UserInfo(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    avatar = models.ImageField(verbose_name='Аватар', upload_to='avatar/', blank=True)
    number = models.IntegerField(verbose_name='Номер телефона', unique=True, blank=True, null=True)
    mail = models.EmailField(verbose_name='Эл.почта', unique=True, blank=True)


Таким образом я пытаюсь переопределить метод __str__ у модели User
def edit_str_user(self):
    try:
        avatar = UserInfo.objects.get(user=self).avatar
        return f'<img src="{avatar.url}" height=50 align="left"> {self.first_name}'
    except:
        return f'{self.first_name}'

User.__str__ = edit_str_user


На выходе получаю
kG1VG3Zy.jpg?download=1&name=%D0%A1%D0%BA%D1%80%D0%B8%D0%BD%D1%88%D0%BE%D1%82%2004-01-2022%2012:27:39.jpg

Как сделать так, чтобы я видел картинку, а не путь к ней?
Думаю, нужно как то править виджет, что-то написать в attr, помогите пожалуйста
  • Вопрос задан
  • 55 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Django
Седой и строгий
HTML-элемент select такое не умеет. Нужно искать какую-нибудь js-библиотеку.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы