Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用django泛型关系将post标记为“喜欢”_Python_Django_Orm_Generic Relations - Fatal编程技术网

Python 如何使用django泛型关系将post标记为“喜欢”

Python 如何使用django泛型关系将post标记为“喜欢”,python,django,orm,generic-relations,Python,Django,Orm,Generic Relations,我想在我的应用程序中使用GenericRelation来实现“like”功能 我已经有了这些模型: class Activity(models.Model): LIKE = 'L' ACTIVITY_TYPES = ( (LIKE, 'Like'), ) user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE) activity_type = m

我想在我的应用程序中使用GenericRelation来实现“like”功能

我已经有了这些模型:

class Activity(models.Model):
    LIKE = 'L'
    ACTIVITY_TYPES = (
        (LIKE, 'Like'),
    )
    user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    activity_type = models.CharField(max_length=1, choices=ACTIVITY_TYPES)
    date = models.DateTimeField(auto_now_add=True)

    content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
    object_id = models.PositiveIntegerField()
    content_object = GenericForeignKey()

    def __str__(self):
        return str(self.user)


class Post(models.Model):
    author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    title = models.CharField(max_length=200)
    text = RichTextUploadingField()
    likes = GenericRelation(Activity, related_query_name='posts')
    created = models.DateTimeField(auto_now_add=True)
    updated = models.DateTimeField(auto_now=True)


    def __str__(self):
        return self.title
我在我的views.py文件中有这样一行:

activity = Activity.objects.get(content_type=ContentType.objects.get_for_model(obj), object_id=obj.id, user=request.user)

我的问题是,我如何才能得到这个用户已经喜欢这个帖子的信息?

如果你没有充分的理由使用泛型关系,我建议你

由于您有一个单一的模型,
Post
,需要链接到一个带有一些元数据的单一模型
Like
,因此最好使用一个贯穿模型将两者链接起来。看看我关于这个问题的答案