Как заставить Django ImageField сохранить изображение на другую модель?

StackOverflow https://stackoverflow.com/questions/1030845

Вопрос

У меня есть приложение для профилей участников, в котором хранится простая информация о членах команды. Часть профиля - это изображение, которое будет использоваться в качестве аватара. Я использовал Pologologue для создания стандартных галерей фотографий, но в нем есть ImageModel , который можно расширить, чтобы воспользоваться преимуществами функции изменения размера и кэширования Pologologue .

Проблема в том, что пример, который они приводят на своей странице, выглядит следующим образом:

from django.contrib.auth.models import User
from photologue.models import ImageModel

class UserPortrait(ImageModel):
    user = models.OneToOneField(User, primary_key=True)

Я мог бы заменить Пользователя Участником, и все было бы хорошо, за исключением того факта, что редактирование профиля становится двухэтапным процессом; Сначала мне нужно создать профиль участника, затем создать UserPortrait и связать его с участником. Я хотел бы упростить это обратно в один шаг процесса, как если бы я использовал ImageField.

Я переопределил поля изображения на уровне формы и уровне admin.py, но мне интересно, смогу ли я справиться с этим на уровне модели или даже на уровне поля. Я хотел бы иметь встроенную функциональность ImageField, но при этом иметь файл, управляемый отдельной связанной моделью. Фактические строчки модели кажутся излишними, поскольку это всего лишь одно изображение.

Это было полезно?

Решение

Ваш класс Member должен расширять ImageModel. Нет необходимости в дополнительном классе (например, UserPortrait).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top