【发布时间】:2021-11-05 09:07:19
【问题描述】:
我正在使用 Wagtail + Django_cmets_xtd + Django。
My_Django_App/models.py
from wagtail.core.models import Page
class PostPage(Page):
...
from django_comments_xtd.models import XtdComment
class PostComment(XtdComment):
page = ParentalKey('PostPage', on_delete=models.CASCADE, related_name='rn_comments')
def save(self, *args, **kwargs):
if self.user:
self.user_name = self.user.username
self.page = PostDetail.objects.get(pk=self.object_pk)
super(PostComment, self).save(*args, **kwargs)
在 Wagtail CMS 上,如果我修改了已经有一些 cmets 的现有帖子并再次发布修改后的帖子,我认为不应再触发 PostComment.save()。但是,在我的调试过程中,我发现它被意外触发了。
我想我需要微调 PostComment.save() 以实现上述意图。
经过对 StackOverflow 的一些研究,
- Identifying new Model Instance in Django Save with UUID pk
- In a django model custom save() method, how should you identify a new object?
我意识到我可能需要在 save() 中使用 PostComment._state.adding 和 force_insert 来实现我的意图。
谁能告诉我应该如何微调PostComment.save()?
【问题讨论】:
标签: django wagtail django-comments