2011-06-13 58 views
0

我怎么会打破下面的视图功能分为两种:一种为Add动作和一个用于Delete行动。打开一个复合视图功能分为两个视图功能

# in urls.py 
urlpatterns += patterns('myproject.views', 
url(r'^profile/edit/education/$', 'edit_education', name='edit_education'),) 

# in views.py 
@login_required 
def edit_education(request): 
    if request.method == 'POST': 
     if 'Delete' in request.POST.values(): 
      profile.educations.remove(Education.objects.get(id=education_id)) 
      return redirect('edit_education') 
     if 'Add School' in request.POST.values(): 
      form = EducationForm(request.POST) 
      if form.is_valid() and request.POST['school']: 
       form.save() 
       return redirect('edit_education') 
    else: 
     form = EducationForm() 
    return render_to_response('userprofile/edit_education.html', {'form': form}, context_instance=RequestContext(request)) 

我需要在这两个文件中做出什么改变才能将视图分解为两个单独的函数?谢谢。

回答

1

你为什么要这么做?该代码是好的 - 紧凑,不言自明。

将其拆分不仅需要视图中的更改,还需要(显然)更改表单模板,以便delete将张贴在与add不同的地方。有这样做的没有简单的方法,比拥有两个独立的<form> S,或使用一些JavaScript来改变窗体的action取决于你按哪个按钮等。似乎并不喜欢它是值得的。