Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.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混合剂_Python_Django_Mixins - Fatal编程技术网

Python 正确使用Django混合剂

Python 正确使用Django混合剂,python,django,mixins,Python,Django,Mixins,所以我刚刚开始将我的旧代码移植到基于类的视图中,这方面我还是新手。我的问题与Django mixin有关,我有一个mixin,我将在各种类中使用它来验证一些信息。问题是我不知道如何访问它返回的信息,而不会得到500个内部错误 class CheckTokenMixin(object): def request_token(self,request): params = {'username':settings.OAUTH_USERNAME,'password':hashl

所以我刚刚开始将我的旧代码移植到基于类的视图中,这方面我还是新手。我的问题与Django mixin有关,我有一个mixin,我将在各种类中使用它来验证一些信息。问题是我不知道如何访问它返回的信息,而不会得到500个内部错误

class CheckTokenMixin(object):
    def request_token(self,request):
        params = {'username':settings.OAUTH_USERNAME,'password':hashlib.sha256(settings.OAUTH_PASSWORD).hexdigest()}
        req = Request(settings.REMOTE_SERVER+'oauth', urllib.urlencode(params))
        return json.loads(urlopen(req).read())

    def get_valid_token(self):
        if datetime.datetime.now() > request.session['access_token'].creation_date + datetime.timedelta(days=1):
            temp = self.request_token(request)
            tokenobj = AccessToken.objects.all()[:1].get()
            tokenobj.access_token = temp['token']
            tokenobj.creation_date = datetime.datetime.now()
            tokenobj.save()
            request.session['access_token'] = tokenobj

        return request.session['access_token']

    def get_context_data(self, **kwargs):
        ctx = super(CheckTokenMixin, self).get_context_data(**kwargs)
        ctx['access_token'] = self.get_valid_token()
        return ctx

class RateAppView(LoginRequiredMixin, JSONResponseMixin, AjaxResponseMixin, CheckTokenMixin, View):

    @method_decorator(csrf_protect)
    def dispatch(self, *args, **kwargs):
        return super(RateAppView, self).dispatch(*args, **kwargs)

    def post_ajax(self, request, username):
        u = get_object_or_404(User, pk=current_user_id(request))
        city_obj = City.objects.get(id=request.POST.get('city_id', None))
        x = self.get_valid_token
        print "teste: " , x.access_token
        print "teste2: " , self.get_context_data.['access_token'].access_token
我想要像这样的东西

self.get\u有效\u令牌

self.get_上下文_数据。['access_token'].access_token

要从我的mixin访问数据,我如何以正确的方式进行?

self.get\u valid\u token()
是正确的。但是,该方法中有几个错误,这无疑是导致问题的原因:特别是,您引用了
request
,但在任何时候都没有定义它。我想你指的是自我要求