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)
...