2017-04-03 81 views
0

我有添加自定义参数到模型的麻烦(在这种情况下,来自request.user的当前用户) 我曾经这样做在以前的项目,我不能管理让它在Django 1.10.4的新项目上工作。将自定义参数添加到django模型

我得到这个错误:

TypeError at /realestateprogram/edition_appartement/19/ 
__init__() got an unexpected keyword argument 'user' 

这是我的看法:

apartment = get_object_or_404(Apartment, pk=apartment_id) 
if request.method == 'POST': 
    form = ApartmentForm(request.POST, request.FILES, instance=apartment, user=request.user) 
    if form.is_valid(): 
     form.save() 
     return redirect('list_realestateprogram_apartment', realestateprogram_id=apartment.realestateprogram.id) 
    else: 
     print form.errors 
else: 
    form = ApartmentForm(instance=apartment, user=request.user) 

,这是我的形式:提前

class ApartmentForm(forms.ModelForm): 
    class Meta: 
     model = Apartment 
     exclude = ('realestateprogram',) 

    def __init__(self, *args, **kwargs): 
     self.user = kwargs.pop('user') 
     super(ApartmentForm, self).__init__(*args, **kwargs) 

感谢,如果你能帮助我

回答

0

尝试通过所有值与关键字参数:

form = ApartmentForm(data=request.POST, files=request.FILES, instance=apartment, user=request.user) 

如果你看一下class based generic views,这就是他们如何做到这一点。我还建议你看看Form handling with class-based views

+0

感谢您的回答。当我使用关键字args传递所有值时,它不起作用:/ – user2323122