簡體   English   中英

我現在做錯了什么來驗證我的課 class?

[英]what am I doing wrong at the moment to validate my lesson class?

我想驗證我的課程材料是否屬於具有 pro 權限的 xyz 用戶,它將顯示正確的內容,但如果不是,它將顯示成為會員,但是如果我將 id 成員資格更改為 pro 或反之亦然,它總是true的陳述

def get(self, request):
    template = loader.get_template(self.template_name)
    template_member = loader.get_template(self.template_payment)
    #rendering the template in HttpResponse
    lesson = Lesson.objects.first()
    user_membership = UserMembership.objects.filter(user=self.request.user).first()
    user_membership_type = user_membership.membership.membership_type
    lesson_allowed_mem_types = lesson.allowed_memberships.all()
    if lesson_allowed_mem_types.filter(membership_type=user_membership_type).exists():
        return HttpResponse(template.render())
    else:
        return HttpResponse(template_member.render())

楷模

class Lesson(models.Model):
  allowed_memberships = models.ManyToManyField(Membership)

class Membership(models.Model):
    membership_type = models.CharField(
        choices=MEMBERSHIP_CHOICES,
        default='Free',
        max_length=30)

    def __str__(self):
        return self.membership_type

class UserMembership(models.Model):
  user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
  membership = models.ForeignKey(Membership, on_delete=models.SET_NULL, null=True)

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

你不只是想看看用戶是否有會員資格嗎?

if UserMembership.objects.filter(
        user=request.user,
        membership__membership_type="PAID MEMBER",
    ).exists():
    # user is member
    return HttpResponse(template.render())
else:
    # user is not a member
    return HttpResponse(template_member.render())

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM