2011-01-05 34 views
0

Hy人爲這篇文章感到抱歉,但我需要幫助我的應用程序,我需要優化我的觀點。我有5個模型,我怎麼能做到這一點?如何讓我的視圖更好地保存Django

def save(request): 

    # get the request.POST in content 
    if request.POST: 
     content = request.POST 
     dicionario = {} 
     # create a dict to get the values in content 
     for key,value in content.items(): 
      # get my fk Course.objects 
      if key == 'curso' : 
       busca_curso = Curso.objects.get(id=value) 
       dicionario.update({key:busca_curso}) 
      else: 
       dicionario.update({key:value}) 
     #create the new teacher 
     Professor.objects.create(**dicionario) 

我的問題是?

1 - 我如何以通用的方式做這個功能?我可以在%s中傳遞一個變量來創建並獲取?像這樣?

foo = "Teacher" , bar = "Course" 

def save(request, bar, foo): 
    if request post: 
    ... 
    if key == 'course' : 
     get_course = (%s.objects.get=id=value) %bar 
     ... 
    (%s.objects.create(**dict)) %foo ??? 

我試過這樣做在我看來,但不工作= /,有人可以幫我做這個工作嗎?謝謝

回答

3

而不是手動這樣做,你應該使用ModelForms。這樣,您可以簡單地創建一個表格,在調用save()時自動創建對象。

例子:

class ProfessorForm(ModelForm): 
    class Meta: 
     model = Professor 

def save(request): 
    if request.method == 'POST': 
     form = ProfessorForm(request.POST) 
     if form.is_valid(): 
      form.save() 
+0

感謝您的幫助= D – 2011-01-12 16:57:36

相關問題