如何在ForeignKeyField中引用自己?



我正在尝试创建一个指向同一模型中另一个对象的外键。

from peewee import *
class Domain(Model):
owner = CharField(max_length=40)
resolves_to = CharField(max_length=40)
name = CharField(max_length=26)
last_renewal = IntegerField(null=True) # null=True means that it is optional
ending_date = IntegerField()
active = BooleanField()
parent = ForeignKeyField(Domain, null=True)
class Meta:
db_table = "domain"

但是我得到一个错误,域没有定义。

您使用字符串文字'self',如ForeignKeys文档中所述:

创建递归关系—对象与自身具有多对一关系-使用models.ForeignKey('self', on_delete=models.CASCADE).

你可以这样来实现:

from django.db import models
class Domain(models.Model):
# …
parent = models.ForeignKey('self', null=True, on_delete=models.CASCADE)
class Meta:
db_table = 'domain'

最新更新