[英]How to use CompositeKey and ForeignKeyField in peewee
我不知道如何在表之間添加關系。
class MyModel(BaseModel):
a = peewee.TextField()
b = peewee.TextField()
c = peewee.IntegerField()
d = peewee.TextField()
e = peewee.FloatField()
f = peewee.FloatField()
class Meta:
primary_key = peewee.CompositeKey('a', 'b', 'c', 'd')
class RModel(BaseModel):
"""
"""
record = peewee.ForeignKeyField(MyModel, related_name='record')
date = peewee.DateTimeField(default=datetime.datetime.now)
我想保證MyModel中的'a','b','c','d'字段創建唯一的組合。 (唯一在一起)
我還想將此表RModel表的關系添加為ForeignKey
我還在
AttributeError: 'CompositeKey' object has no attribute 'get_db_field'
Peewee不支持復合外鍵。 您將需要執行以下操作:
class RModel(BaseModel):
a = peewee.TextField()
b = peewee.TextField()
c = peewee.IntegerField()
d = peewee.TextField()
class Meta:
constraints = ['...(optional) sql for constraint...']
@property
def my_model(self):
return MyModel.get(
(MyModel.a == self.a) &
(MyModel.b == self.b) &
(MyModel.c == self.c) &
(MyModel.d == self.d))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.