我需要我的用户能够说出他们说的语言,所以我很自然地开始:
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原则。问题是,我无法弄清楚如何允许用户拥有多种语言。
答案 0 :(得分:4)
怎么样......
class LanguageSpoken(models.Model):
user = models.ForeignKey("UserProfile")
language = models.CharField(max_length = 2, choices = LANGUAGES)
我假设您不需要保留有关该语言的任何其他数据(例如所使用的国家/地区),您只希望用户列出他们所说的语言。如果您确实需要保留其他数据,则必须使用多对多关系。