2017-04-03 7 views
0

Ich habe Probleme beim Hinzufügen eines benutzerdefinierten Parameters zu einem Modell (in diesem Fall, der aktuelle Benutzer von request.user) Ich habe dies bei früheren Projekten, und ich kann nicht verwalten um es an einem neuen Projekt auf Django 1.10.4 zu arbeiten.Hinzufügen von benutzerdefinierten Parameter zu Django Modellform

habe ich diesen Fehler:

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) 

und dies ist meine Form:

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

Dies ist meine Ansicht

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) 

Vielen Dank im Voraus, wenn Sie mir

helfen

Antwort

0

Versuchen Sie, alle Werte zu übergeben mit Schlüsselwort-Argumente:

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

Wenn man sich die class based generic views aussehen, das ist, wie sie es tun. Ich würde auch vorschlagen, dass Sie auf Form handling with class-based views schauen.

+0

Danke für Ihre Antwort. Es funktioniert auch nicht, wenn ich alle Werte mit Schlüsselwort args übergebe: / – user2323122

Verwandte Themen