1

mixins.pyファイルにGroupAwareMixinという mixin があります。

class GroupAwareMixin(object):
    group = None

    def get_group(self):
        self.group = self.bridge.get_group()

    def dispatch(self, request, *args, **kwargs):
        if not self.group:
            self.get_group()

views.pyファイルには、上記の GroupAwareMixin から継承する次の ListView があります。

class ChatListView(LoginRequiredMixin, GroupAwareMixin, ListView):
   model = Chat
   template_name = 'chat/home.html'

さらに、views.py ファイルにChatクラスがあり、上記の GroupAwareMixin クラスからグループ変数にアクセスしたいと考えています。Chat クラスのグループ変数にアクセスするにはどうすればよいですか?

class Chat(ws.WS, ChatListView):
    def on_message(self, websocket, msg):
        slug = self.group

ChatListViewから継承しようとしたのですが、Chatクラスのself.groupがNoneになっています。

LoginRequiredMixinは以下を定義します。

class LoginRequiredMixin(AccessMixin):
    def dispatch(self, request, *args, **kwargs):
        if not request.user.is_authenticated():
            if self.raise_exception:
                raise PermissionDenied  # return a forbidden response
            else:
                return redirect_to_login(request.get_full_path(),
                                     self.get_login_url(),
                                     self.get_redirect_field_name())

        return super(LoginRequiredMixin, self).dispatch(
            request, *args, **kwargs)
4

0 に答える 0