大家好,我正在尝试在Django注册后完成配置文件。 因此,一旦用户注册,他就会使用以下步骤:
第1步:注册(工作)
第2步:选择大学(显示大学的选择,但必须通过所选大学才能过滤第3步中的课程)
第3步:选择课程并添加年份。在这里,用户将能够选择一门课程并输入他的学习年份。然后,学习年份将存储在studies_student(年度字段)中。此外,我还存储了enrolled_id
选择的学生课程。
我需要的是将大学从第2步发送到第3步,过滤课程并提交enrolled_id
和year
。
views.py
def step2(request):
universities = University.objects.order_by('name').distinct()
return render_to_response("registration/step2.html", {'universities': universities}, RequestContext(request))
def step3(request):
courses = Course.objects.all()
args = {}
if request.method == 'POST':
form = Enroll(request.POST)
if form.is_valid():
return render_to_response("registration/complete.html", {'courses': courses}, RequestContext(request))
else:
form = Enroll()
args['form'] = form
return render(request, 'registration/complete.html')
def complete(request):
return render(request, 'registration/complete.html')
forms.py
class Enroll(forms.ModelForm):
course = forms.ChoiceField()
year = forms.IntegerField(validators=[MinValueValidator(1),
MaxValueValidator(7)])
class Meta:
model = Student
fields = ('year',)
def save(self, commit=True):
student = super(Student, self).save(commit=False)
if commit:
student.save()
return student
对于长篇文章感到抱歉,但我试图这样做几天,所以我试着解释我的目标。
答案 0 :(得分:0)
我强烈建议为University
和Course
创建separete模型。
您可以在课程表
ForeignKey
class University(forms.ModelForm):
//university attributes
class Course(forms.ModelForm):
//course attrbutes
university = forms.ForeignKey('University')
当您拥有course
对象时,您可以获得相应的university
对象,例如
course_obj.university
https://docs.djangoproject.com/en/1.4/topics/db/examples/many_to_one/