我有2个课程的模式:
class Anomaly(DjangoObjectType):
class Meta:
model = models.Anomaly
class Batch(LoggedModel):
class Meta:
model = models.Batch
LoggedModel
是
class LoggedModel(DjangoObjectType):
class Meta:
model = models.LoggedModel
最初都是从DjangoObjectType
继承的,但是两者都没有公开模型超类中定义的字段logs
class LoggedModel(models.Model):
recursive_field = "parent_model"
logs = models.ManyToManyField(Log, related_name="%(app_label)s_%(class)s")
class Meta:
abstract = True
class Anomaly(LoggedModel):
...
class Batch(LoggedModel):
anomalies = models.ManyToManyField(Anomaly)
现在,在模式Batch中声明LoggedModel的子类而不是DjangoObjectType后,两个类的日志都将公开。任何人都可以露面吗?
答案 0 :(得分:1)
您想要在模型中包含的所有相关字段都需要明确声明,就像在第二个示例中所做的那样。在第一个示例中,即使我认为在模型定义中存在日志,也不会自动暴露日志。
在第二个中,它在LoggedModel
中公开,在Anomaly
和Batch
中也显示。
如果您明确公开了它们中的日志,则应该发现它们都像DjangoObjectType
一样工作。