首页 > 解决方案 > 如何在多对多领域 django 中获取最新的 id

问题描述

class Recept(models.Model):
    naslov = models.CharField(max_length=100)
    sestavine = models.CharField(max_length=100)
    priprava = models.TextField()
    datum = models.DateTimeField(default=timezone.now)
    avtor = models.ForeignKey(User, on_delete=models.CASCADE)
    likes = models.ManyToManyField(User, related_name="blog_recept")

    def last_like(self):

        return self.likes.latest('id')

所以我想返回字段喜欢的最新 id 但此代码返回用户的最新 id 我怎样才能获得最新的喜欢 id?

标签: django

解决方案


正如@Mihai Chelaru所说,您需要过滤直通模型。但是不需要自己制作直通模型,可以使用默认生成的:

through_instance = Recept.likes.through.objects.latest('id')
latest_like_user = through_instance.user
latest_like_recept = through_instance.recept

现在latest_like_user包含最新喜欢的用户并latest_like_recept包含最新喜欢的接收。


推荐阅读