Django:模型字段的元组/固定大小列表

Django:模型字段的元组/固定大小列表,django,models,django-1.7,Django,Models,Django 1.7,我正在寻找一种在django模型中存储元组/列表的优雅方法 目前我的模型是这样的: class MyClass(models.Model): val_0 = models.SmallIntegerField(default=0) val_1 = models.SmallIntegerField(default=0) val_2 = models.SmallIntegerField(default=0) val_3 = models.SmallIntegerFie

我正在寻找一种在django模型中存储元组/列表的优雅方法

目前我的模型是这样的:

class MyClass(models.Model):

    val_0 = models.SmallIntegerField(default=0)
    val_1 = models.SmallIntegerField(default=0)
    val_2 = models.SmallIntegerField(default=0)
    val_3 = models.SmallIntegerField(default=0)
    val_4 = models.SmallIntegerField(default=0)
    val_5 = models.SmallIntegerField(default=0)
    val_6 = models.SmallIntegerField(default=0)
    val_7 = models.SmallIntegerField(default=0)
    val_8 = models.SmallIntegerField(default=0)
    val_9 = models.SmallIntegerField(default=0)
有没有更方便的方法来创建固定大小的模型字段列表

通过my_obj.val[3]访问字段值会很好。

使用PickledField:
设置

pip install django-picklefield
from picklefield.fields import PickledObjectField
class MyClass(models.Model):
    val = PickledObjectField(default=(0,)*10)
型号

pip install django-picklefield
from picklefield.fields import PickledObjectField
class MyClass(models.Model):
    val = PickledObjectField(default=(0,)*10)
用法

obj = MyClass()
obj.val[0] = 1
obj.val[5] = 4
obj.save()
val = obj.val[0]

为什么不使用关系?@Serafeim你能详细说明一下吗?我只是想用MyClass模型的外键和val SmallIntegerField创建一个值模型!然后我仍然必须单独处理每个值,并且不能迭代。还是我错了?你绝对可以迭代!如果obj是MyClass的实例,则可以使用obj.value_set.all()获取包含这些值的queryset(iterable)。