【发布时间】:2022-01-10 08:19:05
【问题描述】:
我在我的通知模型中创建了一个 simple_history.models.HistoricalRecords 实例
models.py
class Notification(models.Model):
title = models.CharField(max_length=500)
content = RichTextField()
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
history = HistoricalRecords()
class Attachment(models.Model):
title = models.CharField(max_length=500)
attachement = models.FileField(upload_to = user_directory_path)
notifiaction = models.ForeignKey(Notification, on_delete=models.SET_NULL, null= True)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
schema.py
class AttachmentNode(DjangoObjectType):
class Meta:
model = Attachment
filter_fields = ['title']
interfaces = (relay.Node, )
class NotificationNode(DjangoObjectType):
class Meta:
model = Notification
filter_fields = {
'id': ['exact'],
'title': ['exact', 'icontains', 'istartswith'],
}
interfaces = (relay.Node, )
class Query(graphene.ObjectType):
notifications = relay.Node.Field(NotificationNode)
all_notifications = DjangoFilterConnectionField(NotificationNode)
这工作正常,但是当我查询通知时,我想要由 HistoricalRecords() 为 graphql 端点中的通知模型创建的所有记录。我该怎么做?
【问题讨论】:
-
嘿!每次对象更改时,django-simple-history 都会在单独的自动生成模型中创建一条记录。你的意思是你需要一个单独的端点来处理每个通知的每个修订? (顺便问一下,为什么要更改通知?)
-
不,我不需要单独的端点。当我查询通知时,我只想要与通知模型相关的所有信息,甚至是历史记录。
-
所以每个通知的历史都应该在通知对象中,对吧?
-
没错
标签: python django graphql relay django-simple-history