Seite 1 von 1

Django __init__(): unexpected keyword argument 'instance'

Verfasst: Sonntag 2. September 2018, 20:48
von beukelaer
Hi,
ich bekomme untenstehenden Fehler und kann mir den überhaupt nicht erklären. Ich möchte (fehlt im unteren Code) eigentlich widgets einbinden. Aber ohne diesen wird schon der Fehler geworfen. (Ich bin mir im Klaren, dass bei unterem vermutl. ModelForm cleverer wäre.) Hat jmd eine Idee?
Django Version: 2.1
Exception Type:TypeError
Exception Value:__init__() got an unexpected keyword argument 'instance'

Code: Alles auswählen

class UserN(models.Model):
    login = models.CharField(max_length=100)
    password = models.CharField(max_length=100)

#CreateView:
class RegistrationForm(forms.Form):
    login = forms.CharField(max_length=100)
    password = forms.CharField(max_length=100)
    class Meta:
        model = UserN 
        fields = ('login', 'password')

class RegistrationView(CreateView):
    model = UserN
    form_class = RegistrationForm
    #fields = ['login','password']
    template_name = 'Immo/registrieren.html'
    success_url = reverse_lazy('/user/index')
    def form_valid(self, form):
        form.save()
        return super().form_valid(form)

Code: Alles auswählen

    <label for="{{ form.login.auto_id }}" class="sr-only">Email address</label>{{ field.errors }}
      
    {{ form.login }}
    {% if form.login.help_text %}        <p class="help">{{ form.login.help_text|safe }}</p>        {% endif %}
    
    
    <label for="{{ form.password.auto_id }}" class="sr-only">Password</label>{{ field.errors }}

    {{ form.password }}
    {% if form.login.help_text %}        <p class="help">{{ form.login.help_text|safe }}</p>        {% endif %}

Re: Django __init__(): unexpected keyword argument 'instance'

Verfasst: Montag 3. September 2018, 18:02
von noisefloor
Hallo,

poste mal bitte den vollen Traceback und die Datei, auf die sich die Fehlermeldung bezieht. Mit dem geschnipsel, was du gepostet hast, kommt man nicht wirklich weit.

Gruß, noisefloor

Re: Django __init__(): unexpected keyword argument 'instance'

Verfasst: Montag 3. September 2018, 21:45
von beukelaer
Eigentlich wollte ich die Dateien posten, aber die sind leider zu groß:
Dein Beitrag besteht aus 115446 Zeichen.
Es sind maximal 60000 Zeichen erlaubt.
daher:
https://www.dropbox.com/s/oumjibhs0nujv ... .html?dl=0
https://www.dropbox.com/s/fnauuhz18eq62 ... .html?dl=0


Eingebunden habe ich es über:

Code: Alles auswählen

 path('registrieren', form_.RegistrationView.as_view(), name='registrieren_URLS.PY'), 
Wofür ist eigentlich name='registrieren_URLS.PY'?? Ich habe bisher noch nicht verstanden, wann genau name gebraucht wird.

Re: Django __init__(): unexpected keyword argument 'instance'

Verfasst: Dienstag 4. September 2018, 07:24
von jens
Huch, du entwickelst ein Django Projekt unter Windows mit Microsoft Visual Studio ?!? Strange...

Hab mit den Traceback angesehen und kann da wenig zu sagen. Sieht nur alles ein wenig krude aus. Ich würde mir mal Immo.form_.RegistrationForm näher ansehen.

Re: Django __init__(): unexpected keyword argument 'instance'

Verfasst: Dienstag 4. September 2018, 21:03
von beukelaer
UserN, RegistrationForm, RegistrationView sind in der Immo.form_.RegistrationForm (Quellcode siehe oben).

Als Info: Der Quellcode wurde um unnötige CSS, JS und HTML-Teile bereinigt. Django wertet die eh nicht aus (sind also für die Fehlermeldung unrelevant).

Ja ich weiß, dass das sehr strange ist. Beruflich nutze ich Visual Studio fast den kompletten Tag. Am PC habe ich dann auch nicht immer Lust zwischen VMs zu switchen (oder alternativ immer den PC neuzustarten).

Aktuell ist das komplette Python Projekt noch im Entwicklungsstadius. Allein arbeitstechnisch bin ich noch nicht zum Server (bzw. Webapplication aufsetzen) gekommen. Das folgt in den nächsten Monaten. Ob sich dann was ändert, weiß ich noch nicht.

Ich muss aber berichten, dass sich die Python-Integration von grottig (in VS 2015) zu gut (in VS 2017) verändert hat. Sonst würde ich es auch nicht nutzen. Leider stell ich mich halt noch recht doof in der Webtechnik - hab eben null Erfahrung.

Re: Django __init__(): unexpected keyword argument 'instance'

Verfasst: Donnerstag 6. September 2018, 19:51
von beukelaer
Lsg: Die View darf kein Model kriegen. Lieber einfach ModelForm nehmen ;)