2014-03-28 78 views
0

enter image description here 大家好,我想在Django注册后完成配置文件。 所以一旦用户注册,他使用以下步骤Django处理表格步骤

第1步:注册(工程)

步骤2:选择大学(显示与大学一个选择,但它必须通过所选择的大学为了过滤课程在步骤3)

步骤3:选择课程并添加年。在这里,用户将能够选择一门课程并进入他的学习年。然后,学习年份将存储在studies_student(年份字段)中。并且我还储存了enrolled_id所选的学生的课程。

我需要的是从第2步发送大学步骤3,过滤器的课程并提交enrolled_idyear

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

我强烈建议为UniversityCourse创建分离式模型。 您可以在课程表中创建了大学的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/

+0

喜纳文!我已经有了**大学**和**课程**两个单独的模型,您可以在数据库图像中看到。那么有没有什么办法可以将选定的**大学**从步骤2传递到步骤3并通过**大学**过滤**课程**? – manosim

+0

重塑你的课程模式添加ForeignKey为大学...一旦你有话说可以说课程“获得所有的课程,其中universty名称或ID是xyz” – navyad

+0

我已经有一个ForeignKey大学课程模型。这个问题我无法从表单中传递出来。我阅读这个[链接](https://docs.djangoproject.com/en/1.6/topics/forms/),但我真的很重要。 – manosim