Python ReverseOne未在django信号中计算

Python ReverseOne未在django信号中计算,python,django,Python,Django,我有两种型号: class Content(models.Model): text = models.TextField(blank=True, null=True) class Article(models.Model): content = models.OneToOneField(Content, related_name="article_content") 和一个信号(在信号模块中声明,并通过AppConfig.ready()连接): 当我保存内容时,Attribu

我有两种型号:

class Content(models.Model):
    text = models.TextField(blank=True, null=True)

class Article(models.Model):
    content = models.OneToOneField(Content, related_name="article_content")
和一个信号(在信号模块中声明,并通过AppConfig.ready()连接):

当我保存内容时,
AttributeError:“ReverseOneToneDescriptor”对象没有属性“pk”
被引发

art = Article.objects.get(pk=1)
ct = art.content   # content exists
ct.save()
所以我的问题是:

  • 为什么获取相关描述符会在任何地方返回链接对象实例,但不会在我的信号中返回
  • 如何访问信号中的相关对象(不使用外键替换OneToOneField)

  • 我已设置复制此行为

    sender
    是信号附加到的类,而不是正在保存的实例。这在
    kwargs['instance']
    中,或者您可以直接接受参数:

    def clear_cache(sender, instance, created, **kwargs):
        print(instance.article_content.pk)
    

    我真傻!谢谢。
    def clear_cache(sender, instance, created, **kwargs):
        print(instance.article_content.pk)