Django可以与global_settings.LANGUAGES建立ManyToMany关系吗?

时间:2012-01-18 11:44:32

标签: python django

我需要我的用户能够说出他们说的语言,所以我很自然地开始:

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

我想使用它,如果只是为了遵守DRY原则。问题是,我无法弄清楚如何允许用户拥有多种语言。

1 个答案:

答案 0 :(得分:4)

怎么样......

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

我假设您不需要保留有关该语言的任何其他数据(例如所使用的国家/地区),您只希望用户列出他们所说的语言。如果您确实需要保留其他数据,则必须使用多对多关系。