У меня есть ModelForm
, для которого требуется передать пользователя, чтобы можно было обновить набор запросов. Я переопределяю __init__
метод ModelForm
как таковой:
def __init__(self, *args, **kwargs):
# override init to get user's casino's EmployeeType queryset
self.user = kwargs.pop('user')
print(self.user)
super(MemoForm, self).__init__(*args, **kwargs)
self.fields['receiver'].queryset = EmployeeType.objects.filter(
casino=self.user.casino
)
В View
у меня есть get
и post
метод. Я пытаюсь передать **kwargs
следующим образом:
class VideoUploadView(LoginRequiredMixin, View):
"""
Display a form for uploading videos.
"""
form_class = VideoUploadForm
success_url = '/videos'
template_name = 'videos/video_upload.html'
def get(self, request, *args, **kwargs):
form = self.form_class()
return render(
request,
self.template_name,
{'form': form, 'user': self.request.user}
)
В CreateView
вы можете использовать метод get_form_kwargs
для передачи **kwargs
. Как это делается в обычном View
? Должны ли мы использовать метод __init__
? Показанный выше способ не работает, так как *args
и **kwargs
кажутся пустыми.
Эти являются встроенными методами View
.