我将使用哪种字段类型使用models.Model
在我的MySQL数据库中存储以下内容?
SURVEY_URLS = ['/surveyone/', '/surveytwo/', '/surveythree/', '/surveyfour/', '/surveyfive/', '/surveysix/', '/surveyseven/', '/surveyeight/', '/surveynine/']
我一直在关注Djangos model field field types,但似乎没什么好看的。
搜索“Django如何在models.Model中存储列表”等变体并没有向我显示任何明显的内容
答案 0 :(得分:1)
只需将列表转换为JSON字符串并保存到TextField
yourobject.yourfield = json.dumps(SURVEY_URLS)
yourobject.save()
返回列表:
import ast
list_again = ast.literal_eval(yourobject.yourfield)
答案 1 :(得分:1)
您需要退后一步并重新考虑您的设计。我相信你所拥有的是一项调查'商业实体。因此,如果您的模型是一项调查,那么它的URL就是一个属性(因此它的数量等等......)。
class Survey(models.Model):
url = models.CharField(max_length=25)
count = models.PositiveSmallIntegerField(default=0)
...
但一般情况下,您实际上并不会将模型的URL放入字段中 - 该URL将来自其他内容,例如它的名称。然后,django url dispatcher会将名称传递给视图,该视图将执行查找以获得正确的调查。
任何时候你发现自己都在硬编码one
,two
,three
,......几乎总有一种更好的方法可以做到。不要只支持9项硬编码调查 - 支持n
调查(其中n
可能为1,000,000)。