0

私は、ユーザーに関連するすべての利点と、ユーザーに関連していないすべての利点をリストするプロファイル ページを持っています。

私の問題は、ユーザーをフィルタリングしていないため、ログインしたすべての人が、持っていない利点を持っているように見えることです。

私のモデル:

class PublishedManager(models.Manager):
    use_for_related_fields = True
    def get_queryset(self):
        return super(PublishedManager, self).get_queryset().filter(is_published=True)

class Benefit(models.Model):
    name = models.CharField(max_length=200)
    is_published = models.BooleanField(default=False)

    objects = models.Manager()
    published = PublishedManager()

class Profile(models.Model):
    user = models.OneToOneField(User)
    benefits = models.ManyToManyField(Benefit, blank=True, null=True, related_name="used_benefit")

私の見解:

class ProfileFrontpage(TemplateView):
    template_name = "profile/dashboard.html"

    def get_context_data(self, **kwargs):
            context = super(ProfileFrontpage, self).get_context_data(**kwargs)


            context['used_benefit_list'] = Benefit.published.filter(used_benefit__isnull=False)

            context['unused_benefits_list'] = Benefit.published.filter(used_benefit__isnull=True)


            return context

プロファイル/ユーザーに関連付けられた特典をフィルターするにはどうすればよいですか?

4

1 に答える 1