ich ein Modell Studenten erstellt habe, die von den Django Benutzern erweitert und ist ein Fremdschlüssel zu einem anderen Modell, während es ein ganzes Feld Jahr genannt hat. Was ich versuche, ist ein Formular zu speichern, das 2 Felder hat. Die eine ist die Kurs-ID und die andere ist das Integer-Feld Jahr. Wenn ich auf submit klicke, erhalte ich einen Fehler Kann "u'2 'nicht zuweisen": "Student.course" muss eine "Kurs" -Instanz sein.Django, speichert Modelform
models.py
class Student(models.Model):
user = models.OneToOneField(User)
course = models.ForeignKey(Course)
year = models.IntegerField(validators=[MinValueValidator(1),
MaxValueValidator(7)])
view.py
def step3(request):
user = request.user
if request.method == 'POST':
form = SelectCourseYear(request.POST)
if form.is_valid():
form.save()
return render_to_response("registration/complete.html", RequestContext(request))
else:
form = SelectCourseYear()
return render(request, 'registration/step3.html',)
forms.py
class SelectCourseYear(forms.ModelForm):
course = forms.CharField()
year = forms.IntegerField(required=True)
class Meta:
model = Student
fields = ['user', 'course', 'year']
Könnten Sie versuchen, statt 'form.save()' schreiben 3 Zeilen Code : 'obj = form.save (commit = False)', 'obj.course_id = request.POST ['Kurs']' und dann 'obj.save()'? – alecxe
Versucht es, aber immer noch diesen Fehler ** Kann nicht zuweisen "u'1 '": "Student.course" muss eine "Kurs" -Instanz sein. ** – manosim
Wo weisen Sie den Kurs des Benutzers zu? da ich den Code nicht erhalte, wo Sie das Kursattribut zuweisen. –