记录用户过滤评论

时间:2017-10-29 17:19:47

标签: django python-3.x django-views many-to-many

下午好,

我有三个模型链接到彼此,Perfil,Puesto和Tags。 Perfil模型继承自Abstractuser。对于这个模型,它已经添加了一个额外的信息'puesto de trabajo(job)',它在下面显示的模型中创建。

models.py

class ComentarioListar (LoginRequiredMixin,ListView):
    login_url='/'
    redirect_field_name='redirigido'
    model = Comentario
    template_name = 'home/comentario_listar.html'

    def get_queryset(self):
        aa=Puesto.objects.filter(nombre_puesto=self.request.user.nom_puesto)

        return Comentario.objects.exclude(autor__id=self.request.user.id)
        b=Perfil.objects.filter(nom_puesto=self.request.user)
        c=Puesto.objects.filter(nombre_puesto=b)
        return Comentario.objects.filter(tag__id=c)

标签模型在另一个应用程序中创建,请看:

models.py

select

此外,我创建了另一个应用程序来创建可以添加标签的注释。

目标是显示其标签适合用户个人资料标签的评论。为了达到这个目的:

views.py

var result = Convert.ToString((byte)symbole, 2).PadLeft(8, '0').Select(bit => bit == '1').ToList();

这不起作用,太疯狂了!有人知道如何只显示符合用户标签的评论吗?

感谢您的回答!!!

1 个答案:

答案 0 :(得分:0)

可以在Perfil.nom_puesto.etiquetas.all()找到给定用户的标签。

要仅查找与给定用户具有共同标记的Comentario个对象,假设ComentarioTags的{​​{1}}具有多对多关系,则称为tags:< / p>

>> user_tags = request.user.nom_puesto.etiquetas.all()
>> matching_comments = Comentario.objects.filter(tags__in = user_tags).distinct()

将对象列表传递给__in将它们转换为引擎盖下的主键;然后Django为每个匹配创建一个带有Comentario对象的查询集。如果用户和评论有多个共同的标签,那么您会看到重复的结果,因此使用distinct()