2011-06-13 42 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取決於你按哪個按鈕等。似乎並不喜歡它是值得的。