@stayHARD

Как сделать выдачу топиков по выбранному языку?

Привет, {{ user.username }}.

Хочу сделать в админке форму с пикером языка(использую https://github.com/cordery/django-languages-plus), после выбора языка выдавать все объекты из моей модели(у которой есть связь с Languages)
модель:
class Category(models.Model):
    name = models.CharField(max_length=255)
class Topic(models.Model):
    name = models.CharField(max_length=255)
    category = models.ForeignKey(Category)
class LocalizedTopic(models.Model):
    topic = models.ForeignKey(Topic)
    content = models.CharField(max_length=255)
    lang = models.ForeignKey(Language, default='en')

В идеале получить следующее:
Если я выбираю English, то я должен получить список всех Topic и пустое(или уже заполненое, если существует LocalizedTopic с таким lang) поле для ввода доступное для редактирования.
Language: English
1. Привет [Hello] SAVE
2. Как дела? [How are you?] SAVE
3. Хорошо [] SAVE

Думаю по реализации сейчас, что можете подсказать?
Пока нашел только - formfield_for_foreignkey из полезного, но опять же таки не знаю как применить, кастомизирую админ панель впервые :)
  • Вопрос задан
  • 208 просмотров
Пригласить эксперта
Ответы на вопрос 1
Guest007
@Guest007
Django, Python, Linux и всё такое...
Ты не с того конца зашёл. Тебе надо убрать LocalizedTopic и использовать django-modeltranslation. Очень удобно и в админке хорошо отображается (если в админке grappelli, то добавь ещё grappelli_modeltranslation). Если надо иметь разноязычные версии сайта, то ещё django-localeurl.

django-rosetta поможет перевести статические тексты (в шаблонах и в исходниках). Это дополнение к встроенным джанговским механизмам i18n

django-modeltranslation не единственный вариант, но у меня он работает. Может ты что-то ещё подберёшь под свои нужды.
Как всегда Гугл рулит и педалит.
И ещё djangopackages.com
Вот, к примеру, по твоему вопросу:
https://www.djangopackages.com/grids/g/i18n/
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы