[英]Django: How do I use a different form_class with django-registration
[英]How do I access the request object in a form_class, django, CBV
我正在尝试将请求中的数据传递到我的表单。 目前,这会导致错误:
基础模型。 init () 得到了一个意想不到的关键字参数 'request'
我的看法:
class TaskCreate(LoginRequiredMixin, CreateView):
model = Task
template_name = "tasks/task_form.html"
form_class = DateInputForm
我的观点(get_form_kwargs 函数):
def get_form_kwargs(self, *args, **kwargs):
form_kwargs = super().get_form_kwargs()
form_kwargs['request'] = self.request
return form_kwargs
从我的表单初始化:
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
request = kwargs.pop('request', None)
self.fields['tags'].queryset = Tag.objects.filter(user=request.user.id)
我知道我可以在我的请求中找到用户的 ID
解决方法: (1)我的看法(get_form_kwargs函数):
def get_form_kwargs(self, *args, **kwargs):
form_kwargs = super().get_form_kwargs(*args, **kwargs)
form_kwargs['request'] = self.request
return form_kwargs
(2) 从我的表单初始化:
def __init__(self, request,*args, **kwargs):
self.request = request
super().__init__(*args, **kwargs)
self.fields['tags'].queryset = Tag.objects.filter(user=request.user.id)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.