Как заставить Django ImageField сохранить изображение на другую модель? - PullRequest
0 голосов
/ 23 июня 2009

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

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

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, но при этом иметь файл, управляемый отдельной связанной моделью. Действительные строчки модели кажутся излишними, поскольку это всего лишь одно изображение.

1 Ответ

1 голос
/ 23 июня 2009

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

...