Здравствуйте, есть примерно такие модели:
LANG = (
('unknown', _('Unknown')),
('abk', _('Abkhazian')),
('ace', _('Achinese')),
('ach', _('Acoli')),
('eng', _('English')),
('rus', _('Russian'))
...
)
class Edition(models.Model):
name = models.CharField(max_length=200)
description = models.TextField(blank=True)
lang = models.IntegerField(choices=LANG)
book = models.ForeignKey('Book')
class Book(models.Model):
pass
в базе есть допустим 1 книга и 10 изданий ссылающихся на неё, языки у изданий eng, eng, rus. abk, ace, rus, eng, ace, unknown, eng.
задача: При просмотре книги выводить описание на английском языке и языке пользователя, пусть это будет русский.
проблема: изданий на одном и том же языке может быть несколько(в примере rus, eng, ace и описания пусть и на одном языке незначительно отличаются. Разницы какой из них выводить нет, но все же не хотелось бы что бы при обновлении страницы вдруг появилось другое описание.
Единственное приходящее в мою голову решение вынести descriotion в отдельную модель и из Edition сделать на неё fk. но непонятно насколько это правильно. Зато в таком случае избавляюсь от, по сути, дублирующейся информации в виде множества почти одинаковых описаний.
Но быть может есть способ правильнее/проще/удобнее?