我正在django建立一个数据库,但我遇到了一些障碍,
我正在尝试这样做:有一个对象,该对象有两个索引。每个索引都有两个值。这可能听起来令人困惑,所以让我这样说吧:
Book有索引alpha和索引Beta 指数alpha位于(4,3) 指数β位于(7,4)位置 请注意,这些位置是单独存储的,而不是整数形式((4,3)而不是“43”)
为了在DB上实现这一点,我构建了一个索引和Book的类,索引中有一个外键。像这样:
class index(models.Model):
book = models.ForeignKey(Books)
int1 = models.IntegerField()
int2 = models.IntegerField()
但是,我想简化这个。当我尝试为索引类提供其他用途时,它会变得混乱。 (特别是不用于书类)
理想情况下,我会创建一个自定义多值字段,以后我可以在我的书类中自由使用,如下所示:
class Book(models.Model):
title=...
publisher= ...
indexA=customMulti-valueField()
这可能吗?我该如何定义这样的Field? 我已经看过有关自定义字段创建的django文档,但我认为它不能解决我的问题。
这里主要关注的是拥有一个mysql数据类型,可以存储类似python元组的内容。
感谢。
答案 0 :(得分:0)
如果它只有2个索引,我只是将它们存储在IntegerFields中并创建一个返回它们的方法,如下所示:
class Book(models.Model):
title=...
publisher= ...
indexAX=models.IntegerField()
indexAY=models.IntegerField()
indexBX=models.IntegerField()
indexBY=models.IntegerField()
def indexA(self):
return self.indexAX, self.indexAY
def indexB(self):
return self.indexBX, self.indexBY
然后你可以像这样使用它:
b = Book.objects.create('Title', 'Publisher', 1, 2, 3, 4)
ax, ay = b.indexA()
bx, by = b.indexB()