Могу ли я сделать так, чтобы код обновления запускался поздно в представлении классов? - PullRequest
0 голосов
/ 12 июня 2019

Могу ли я сделать так, чтобы код обновления запускался поздно в Class View?

Я хочу, чтобы код обновления выполнялся первым.

потому что мне нужно обновить модель пользователя перед выводом списка категорий

class MyShortcutListByCategory(ListView):

    def get_queryset(self):
        user = self.request.user.profile.shortcut_user_id
        # print("user : ", user)
        print("self.request.user : ", self.request.user)

        if user == "me":
            user = self.request.user
        else:
            user = User.objects.get(username=user)

        slug = self.kwargs['slug']

        if slug == '_none':
            category = None
        else:
            category = Category.objects.get(slug=slug)
            pf = Profile.objects.filter(Q(user=self.request.user)).update(selected_category_id = category.id)

            print('category id update 성공')
        return MyShortCut.objects.filter(category=category, author=user).order_by('created')

    def get_context_data(self, *, object_list=None, **kwargs):
        context = super(type(self), self).get_context_data(**kwargs)
        context['category_list'] = Category.objects.all()
        context['posts_without_category'] = MyShortCut.objects.filter(category=None,author=self.request.user).count()

        slug = self.kwargs['slug']
        if slug == '_none':
            context['category'] = '미분류'
        else:
            category = Category.objects.get(slug=slug)
            context['category'] = category

        return context

обновление

category = Category.objects.get(slug=slug)
            pf = Profile.objects.filter(Q(user=self.request.user)).update(selected_category_id = category.id)
...