如何将settings.LANGUAGES中的多个字符串值保存到Django中的模型?

时间:2012-03-14 12:04:42

标签: django django-models

我在Django中有帐户模型。

class Account(models.Model):
name =   CharField(max_length=255)
description =  CharField(max_length=500)
image_path =  CharField(max_length=255)
languages = models.ListField()

由于Django没有ListField,因此会出错。那么如何存储多个字符串值(选项将来自settings.LANGUAGES)?

1 个答案:

答案 0 :(得分:0)

一种解决方案是为Language选项创建一个模型,并与Account建立多对多的关系

class LanguageChoices(models.Model):
    name = models.CharField(max_length=300)

class Account(models.Model):
   name =   CharField(max_length=255)
   description =  CharField(max_length=500)
   image_path =  CharField(max_length=255)
   languages = models.ManyToManyField(LanguageChoices)

但缺点是必须将选择放在数据库中。如果你想使用硬编码选择,这可能不是你想要的。

通过实现ModelField MultipleChoiceField

http://djangosnippets.org/snippets/1200/上有一个django片段似乎可以解决您的问题