В ListView, я могу легко использовать def post (self, request) метод, чтобы сделать запрос на публикацию из списка. Но я хочу сделать почтовый запрос от def get_queryset (self) , который я пока не могу сделать. Когда я пытаюсь это сделать, он показывает « метод 405 не разрешен! », даже если метод post разрешен через http_method_names .
Как я могу получить доступ к POST-запросу внутри get_queryset функции?
class ZonListView(SearchMixin, SingleTableMixin, ListView):
template_name = 'cadmin/list.html'
model = Zon
table_class = ZonTable
search_fields = {
'title': 'icontains',
'description': 'icontains',
}
def post(self, request): # ***** this one works! ******
try:
toggle_status = request.POST.get('toggle-status')
pk = int(request.POST.get('pk'))
....
return HttpResponseRedirect(reverse('cadmin:zon_list'))
def get_queryset(self):
qs = super(ZonListView, self).get_queryset()
if self.request.POST: #***** Not working. 405 Error *****#
try:
toggle_status = self.request.POST.get('toggle-status')
pk = int(self.request.POST.get('pk'))
......
if self.request.GET:
try:
status = self.request.GET.get('status')
qs = qs.filter(status=status)
except Exception:
pass
return qs.distinct()
def get_context_data(self, **kwargs):
....