Может ли Django иметь отношения ManyToMany с global_settings.LANGUAGES? - PullRequest
1 голос
/ 18 января 2012

Мне нужно, чтобы мои пользователи могли указывать языки, на которых они говорят, поэтому естественно, что я начал с:

class Language(models.Model):
    name = models.CharField(max_length=128)

class UserProfile(models.Model):
    languages = models.ManyToManyField("Language", related_name="users")

Но потом я обнаружил это:

from django.conf.global_settings import LANGUAGES

Который я бы хотел использовать, лишь бы придерживаться принципа СУХОЙ.Проблема в том, что я не могу понять, как разрешить пользователю использовать несколько языков.

1 Ответ

4 голосов
/ 18 января 2012

Как насчет ...

class LanguageSpoken(models.Model):
     user = models.ForeignKey("UserProfile")
     language = models.CharField(max_length = 2, choices = LANGUAGES)

Я предполагаю, что вам не нужно хранить какие-либо другие данные о языке (например, о странах, на которых на нем говорят), вы просто хотите, чтобы пользователи перечислялиязыки, на которых они говорят.Если вам нужно сохранить другие данные, вам придется использовать отношение «многие ко многим».

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