python - Django - access class attributes of a class-based view in middleware -
i have couple of views , each of them must accesed no more 1 user @ time. therefore use locking service this. idea follows:
- declare each view this
class dummyview(view): lock = lock() def dispatch(self, request, *args, **kwargs): ... - in middleware, this
class middleware: ... def __call__(self, request): # lock = view.get_lock_if_it_has_one (this need with) lock.acquire() response = self.get_response(request) lock.release() return response how can access lock attribute of view described?
unsure if can access view inside middleware, suggesting more simple , easy implement / understand.
simply create model lock have fields view_name (char field), user (foreign key) & is_acquired (bool). then, when want lock view given request.user (check anonymous users), instantiate lock model user & view_name, .acquire() changes is_acquired true (and saves).
and when want check if lock has been acquired, check if given entry .exists().
if want, can run periodic task expires old locks.
Comments
Post a Comment