模型.字符串列表的模型字段类型



我将使用什么字段类型来在我的MySQL数据库中使用models.Model存储以下内容?

SURVEY_URLS = ['/surveyone/', '/surveytwo/', '/surveythree/', '/surveyfour/', '/surveyfive/', '/surveysix/', '/surveyseven/', '/surveyeight/', '/surveynine/']

我一直在看django的模型字段字段类型,但似乎没有什么明显的。

和搜索"Django如何在模型中存储列表"的变体。模型"等没有显示任何明显的

您需要退后一步,重新考虑您的设计。我相信你们拥有的是一个"调查"业务实体。因此,如果你的模型是一个调查,它的URL将是一个属性(它的计数,等等…)。

class Survey(models.Model):
    url = models.CharField(max_length=25)
    count = models.PositiveSmallIntegerField(default=0)
    ...

但通常你不会把模型的URL放到一个字段中——URL会从其他东西派生出来,比如它的名字。然后django的url分派器会把这个名字传递给视图,视图会执行一个查找来得到正确的调查结果。

任何时候你发现自己硬编码one, two, three,…几乎总是有更好的方法来做这件事。不要只支持9个硬编码调查-支持n调查(其中n可以是1,000,000)。

将列表转换为JSON字符串并保存到TextField

yourobject.yourfield = json.dumps(SURVEY_URLS)
yourobject.save()

返回列表:

import ast
list_again = ast.literal_eval(yourobject.yourfield)

最新更新