第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Django 私人頻道 - if self.object. #(消費者:其中之一:

Django 私人頻道 - if self.object. #(消費者:其中之一:

侃侃爾雅 2023-08-08 16:04:14
我正在嘗試建立一個頻道。我不希望其他用戶有權(quán)訪問詳細視圖。問題是我可以讓一個人可以訪問它,但我不知道如何讓消費者和賣家都可以訪問它?class Group(models.Model):    consumer = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name="", blank=True, null=True)    name = models.CharField(max_length=10)    seller = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name="")    ...    def __str__(self):        return self.name#Detail channel@method_decorator(login_required(login_url='/cooker/login'),name="dispatch")class CheckoutDetail(generic.DetailView):    ...        def get(self,request,*args,**kwargs):        self.object = self.get_object()        if self.object.consumer or self.object.seller != request.user: #it's redirect me to home page            return HttpResponseRedirect('/')                    return super(CheckoutDetail, self).get(request,*args,**kwargs)
查看完整描述

2 回答

?
FFIVE

TA貢獻1797條經(jīng)驗 獲得超6個贊

正確的邏輯是


if not (request.user == self.object.consumer or request.user == self.object.seller):

    return redirect(...)

但我會將該邏輯重構(gòu)為 中的函數(shù)object,例如


def has_access(self, user):

    return (self.consumer == user or self.seller == user)

然后調(diào)用它,例如


if not self.object.has_access(user=request.user):

    # ...


查看完整回答
反對 回復(fù) 2023-08-08
?
哈士奇WWW

TA貢獻1799條經(jīng)驗 獲得超6個贊

如果我正確理解你的意思,你必須像這樣改變這一行:

    if self.object.consumer != request.user and self.object.seller != request.user:
            return HttpResponseRedirect('/')


查看完整回答
反對 回復(fù) 2023-08-08
  • 2 回答
  • 0 關(guān)注
  • 165 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號