Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 模型。字符串列表的模型字段类型_Django_Django Models - Fatal编程技术网

Django 模型。字符串列表的模型字段类型

Django 模型。字符串列表的模型字段类型,django,django-models,Django,Django Models,使用models.Model,我将使用什么字段类型在MySQL数据库中存储以下内容 SURVEY_URLS = ['/surveyone/', '/surveytwo/', '/surveythree/', '/surveyfour/', '/surveyfive/', '/surveysix/', '/surveyseven/', '/surveyeight/', '/surveynine/'] 我一直在看,但似乎什么都不明显 搜索“Django如何在models.Model中存储列表”等变

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

SURVEY_URLS = ['/surveyone/', '/surveytwo/', '/surveythree/', '/surveyfour/', '/surveyfive/', '/surveysix/', '/surveyseven/', '/surveyeight/', '/surveynine/']
我一直在看,但似乎什么都不明显


搜索“Django如何在models.Model中存储列表”等变体时,不会显示任何明显的信息

只需将列表转换为JSON字符串并保存到
文本字段

yourobject.yourfield = json.dumps(SURVEY_URLS)
yourobject.save()
要检索回列表,请执行以下操作:

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

你需要后退一步,重新考虑你的设计。我相信你们拥有的是一个“调查”的商业实体。所以,如果您的模型是一个调查,那么它的URL将是一个属性(它的计数也是如此,等等)

但通常情况下,您不会将模型的URL放在字段中——URL将从其他内容派生,比如它的名称。django然后将名称传递到视图中,该视图将执行查找以获得正确的测量


任何时候你发现自己在硬编码
1
2
3
。。。几乎总是有更好的方法去做的。不要只支持9个硬编码调查-支持
n
调查(其中
n
可能是1000000)。

列表会很大吗?是否要对列表执行复杂的数据库查找?还是只想将其存储为一个哑列表?
class Survey(models.Model):
    url = models.CharField(max_length=25)
    count = models.PositiveSmallIntegerField(default=0)
    ...