我創建了一個模型學生,它從Django用戶擴展,是另一個模型的外鍵,而它有一個稱爲year的整數字段。我想要做的是保存一個表單,其中有2個字段。一個是當然編號和另一個是整數字段年。當我點擊提交時,出現錯誤無法指定「u'2'」:「Student.course」必須是「課程」實例。Django,保存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']
你能嘗試,而不是'form.save()'寫3行代碼:'obj = form.save(commit = False)','obj.course_id = request.POST ['course']'然後'obj.save()'? – alecxe
嘗試過但仍然出現此錯誤**無法分配「u'1'」:「Student.course」必須是「課程」實例** – manosim
您在哪裏指定用戶的課程?因爲我沒有得到你分配課程屬性的代碼。 –