2014-05-03 101 views
0

在views.py的正確做法有一段代碼:數據庫錯誤

if form.is_valid(): 
     try: 
         obj.family = form.cleaned_data.get ('login') 
         obj.save() 
     except DatabaseError: 
         return HttpResponseRedirect ('/ DBerror /') 
     else: 
         return HttpResponseRedirect ('/ ok_page /') 

它的成功記錄的情況下轉發該用戶到指定的頁面。 在不成功的記錄代碼的情況下將用戶重定向到另一個頁面。

帶有錯誤消息(/ DBerror /)的頁面必須自己做所有事情。

不是否有一種方法可以將用戶導向出現錯誤信息的標準頁面?

回答

0

看起來好像你在使用標準的Django表單,所以你不應該在發生錯誤時重定向。取而代之的是,你的代碼看起來應該是這樣的:

from django.shortcuts import render 
from django.http import HttpResponseRedirect 

def contact(request): 
    if request.method == 'POST': # If the form has been submitted... 
     # ContactForm was defined in the previous section 
     form = ContactForm(request.POST) # A form bound to the POST data 
     if form.is_valid(): # All validation rules pass 
      # Process the data in form.cleaned_data 
      # ... 
      return HttpResponseRedirect('/thanks/') # Redirect after POST 
    else: 
     form = ContactForm() # An unbound form 

    return render(request, 'contact.html', { 
     'form': form, 
    }) 

在模板代碼,每個錯誤的領域都會有它在{{ field.errors }}所有錯誤,您可以顯示給用戶。

瞭解更多關於https://docs.djangoproject.com/en/dev/topics/forms/的信息,瞭解它們如何融合在一起。