我有这个模型,它是与分类广告网站中的广告相关的对话:
class Conversation(models.Model):
ad = models.ForeignKey(Ad, on_delete=models.CASCADE)
starter = models.ForeignKey(User, related_name='starter', on_delete=models.SET_NULL, null=True)
participants = models.ManyToManyField(User)
def get_absolute_url(self):
return reverse('messages-conversation', kwargs={'pk':self.pk})
def get_if_exists(self, **kwargs):
try:
return self.objects.get(**kwargs)
except self.DoesNotExist:
return None
在视图中,我想检查有关该广告的对话是否已经存在get_if_exists,但出现错误:
如果使用
conversation = Conversation.get_if_exists(ad=ad, starter=request.user)我明白了
Exception Value: name 'self' is not defined如果使用
conversation = Conversation().get_if_exists(ad=ad, starter=request.user)得到:
Exception Value: Manager isn't accessible via Conversation instances
我做错了什么?如何做到这一点,以便我可以在视图中使用一行来获取对象(如果存在)和 None(如果不存在)?