Несколько изображений, связанных с профилем пользователя - PullRequest
1 голос
/ 14 июня 2011

У меня есть пользователь с аватаркой. Изображение будет преобразовано в два размера: один, который будет отображаться для его профиля (шириной около 200 пикселей), и уменьшенный эскиз, который будет отображаться в результатах поиска (шириной около 64 пикселей).

Каков наилучший способ построения базы данных и структуры папок для этого?

Мои две идеи для структуры БД:

# 1)
class UserProfile(models.Model):
    user = models.ForeignKey(User, unique=True)
    ...
    avatar = models.ImageField(upload_to='images/%Y/%m/%d', blank=True,)
    avatar_thumbnail = models.ImageField(upload_to='images/%Y/%m/%d', blank=True,)

# 2) 
class UserProfile(models.Model):
    user = models.ForeignKey(User, unique=True)
    ...

class Avatar(models.Model):
    avatar = models.ImageField(upload_to='images/%Y/%m/%d')
    user = models.ForeignKey(UserProfile)

Какой из них был бы лучшим способом справиться с этим? И что было бы хорошим способом структурировать мою папку с изображениями, чтобы легко разделять и ссылаться на два размера изображения? Спасибо.

Ответы [ 2 ]

2 голосов
/ 14 июня 2011

Вы могли бы использовать Sorl Thumbnail, загрузить одно изображение и создать уменьшенную версию на лету, используя шаблонные теги Sorl.Это также избавит вас от необходимости создавать другой класс.У меня был большой успех с этой библиотекой, надеюсь, она вам поможет.

http://pypi.python.org/pypi/sorl-thumbnail/11.05.2

1 голос
/ 14 июня 2011

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

там уже может быть приложение для этого ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...