【发布时间】:2019-12-18 21:23:26
【问题描述】:
我想在 MySQL 字段中存储整数列表。
我目前的解决方法:
import datetime
from django.db import models
class myModel(models.Model):
testList = models.CharField()
def set_testList(self,data):
self.testList = ','.join(map(str, data))
def get_testList(self):
return list(map(int, self.testField.split(',')))
只要我通过 set_testList 和 get_testList 来设置和检索该字段,它就可以正常工作。
这变得特别烦人,因为我在某些模型中有 4-5 个这样的字段,并且必须通过自己的 set 和 get 方法设置和检索每个字段,这会降低代码的可读性并增加数据库查询。
是否可以创建一个无需通过自定义方法来实现此目的的解决方案?
最佳情况是使用:myModel.objects.create(testField=[1,2,3,4]) 设置字段;并使用myModelobjects.get(pk=1).values() 检索它,并让转换发生在“幕后”。
这样的事情可能吗(无需迁移到 PostgreSQL)?
【问题讨论】:
-
您可以将
CharField子类化为您进行包装。
标签: django django-mysql