Python django uuu init_uuuuuu()得到了一个意外的关键字参数';参数';
我的视图.pyPython django uuu init_uuuuuu()得到了一个意外的关键字参数';参数';,python,django,Python,Django,我的视图.py class AccountCreate(RequestPassingFormViewMixin, MyCreateView): template_name = 'dashboard/account_form.html' form_class = AccountForm model = Account def get_form_kwargs(self, *args, **kwargs): kwargs = super(AccountCreate,
class AccountCreate(RequestPassingFormViewMixin, MyCreateView):
template_name = 'dashboard/account_form.html'
form_class = AccountForm
model = Account
def get_form_kwargs(self, *args, **kwargs):
kwargs = super(AccountCreate, self).get_form_kwargs(*args, **kwargs)
common = get_object_or_404(Common, pk=self.kwargs['common_pk'])
combination_price = Account(common=common)
kwargs['instance'] = combination_price
return kwargs
def get_success_url(self):
return reverse('dashboard_account_list', kwargs={'chain_pk': self.object.chain.id})
def form_valid(self, form):
self.object = form.save(commit=False)
discount = form.cleaned_data['discount']
account_list = form.cleaned_data['account_list']
self.object.common = get_object_or_404(Common, pk=self.kwargs['common_pk'])
code = Account.get_code(self.object.common, account_list, discount)
self.object.code = code
self.object.save()
form.save_m2m()
return redirect(self.get_success_url())
这是我的form.py文件
class AccountForm(autocomplete_light.ModelForm):
class Meta:
model = Account
def __init__(self, *args, **kwargs):
self.request = kwargs.pop("request")
super(AccountForm, self).__init__(*args, **kwargs)
common = Common.objects.get(pk=self.request.session.get('common_pk'))
products = Account.objects.filter(chain=chain)
form.fields['discount'].queryset = Discount.objects.filter(product__in=products)
form.fields['account_list'].queryset = AccountList.objects.filter(common=common)
def clean(self):
cleaned_data = super(AccountForm, self).clean()
discount = cleaned_data['discount']
if len(discount) <= 1:
self._errors["discount"] = self.error_class(['Choose at least two discount'])
return cleaned_data
account_list = cleaned_data['account_list']
common = Common.objects.get(pk=self.request.session.get('common_pk'))
code =Account.get_code(common, account_list, discount)
if not self.instance or (self.instance.code != code or self.instance.account_list != account_list):
if Account.objects.filter(code=code, account_list=account_list).exists():
msg1 = 'Already exists'
self._errors["discount"] = self.error_class([msg1])
return cleaned_data
类帐户表单(autocomplete\u light.ModelForm):
类元:
模型=帐户
定义初始化(self,*args,**kwargs):
self.request=kwargs.pop(“请求”)
super(AccountForm,self)。\uuuuu init\uuuuuu(*args,**kwargs)
common=common.objects.get(pk=self.request.session.get('common_-pk'))
产品=帐户.对象.过滤器(链=链)
form.fields['discount'].queryset=discount.objects.filter(product\uu in=products)
form.fields['account\u list'].queryset=AccountList.objects.filter(common=common)
def清洁(自清洁):
cleaned_data=super(AccountForm,self).clean()
折扣=已清理的数据[“折扣”]
如果len(discount)我已经找到了解决方案,在我的表单中,\uuu init\uuu
方法没有'param'关键字参数,因此我重写了我的form.py类似的内容,添加了self.param=kwargs.pop(“param”)
def __init__(self, *args, **kwargs):
self.request = kwargs.pop("request")
self.param = kwargs.pop("param")
super(CombinationPriceForm, self).__init__(*args, **kwargs)
chain = Chain.objects.get(pk=self.request.session.get('chain_pk'))
products = Product.objects.filter(chain=chain)
self.fields['variants'].queryset = Variant.objects.filter(product__in=products)
self.fields['price_list'].queryset = PriceList.objects.filter(chain=chain)
我已经找到了解决方案,在我的表单中,\uuu init\uuu
方法没有'param'关键字参数,所以我重写了我的form.py类似的内容,添加了self.param=kwargs.pop(“param”)
和它的工作
def __init__(self, *args, **kwargs):
self.request = kwargs.pop("request")
self.param = kwargs.pop("param")
super(CombinationPriceForm, self).__init__(*args, **kwargs)
chain = Chain.objects.get(pk=self.request.session.get('chain_pk'))
products = Product.objects.filter(chain=chain)
self.fields['variants'].queryset = Variant.objects.filter(product__in=products)
self.fields['price_list'].queryset = PriceList.objects.filter(chain=chain)
检查autocomplete\u light.ModelForm.\uuu init\uuuu
的声明,并在调用它之前简单地pop
不需要的声明(就像您对请求所做的那样)…错误发生在哪里?您在这里包含了很多代码,其中大部分似乎与错误无关,堆栈跟踪在哪里?请检查自动完成\u light.ModelForm.\uuuu init\uuuu
的声明,并在调用它之前简单地弹出不需要的代码(就像您对请求所做的那样)…错误发生在哪里?这里包含了很多代码,其中大部分似乎与错误无关,堆栈跟踪在哪里?