2015-05-01 37 views
1

保持在/帳號/資料/編輯得到DoesNotExist/Django的:DoesNotExist在/帳號/資料/編輯/

我認爲這個問題是因爲新用戶的RegisterTruckFrom是空的 - 還沒有被填補。

如何獲得此功能以顯示新用戶的空白新RegisterTruckFrom?

@login_required 
def profile_edit(request): 
    truck_name = Product.objects.get(user=request.user) 
    try: 
     truck_form = RegisterTruckForm(instance=truck_name) 

    except ObjectDoesNotExist: 
     truck_form = RegisterTruckForm() 

    if request.method == 'GET': 
     if truck_name is not None: 
      truck_form = RegisterTruckForm(instance=truck_name) 
     else: 
      truck_form = RegisterTruckForm() 
     context = { 
      'truck_form': truck_form, 
      'truck_name': truck_name, 
     } 
     return render(request, 'accounts/profile_edit.html', context) 

    elif request.method == 'POST': 
     if truck_name is not None: 
      truck_form = RegisterTruckForm(request.POST, request.FILES,instance=truck_name) 
     else: 
      truck_form = RegisterTruckForm(request.POST, request.FILES) 

     if truck_form.is_valid(): 
      truck_name = truck_form.save(commit=False) 
      truck_name.product = Product.objects.get(user=request.user) 
      truck_form.save_m2m() 
      truck_name.save() 
      return HttpResponseRedirect('/accounts/profile') 
     return render_to_response('accounts/profile_edit.html', {'truck_form': truck_form}, context_instance=RequestContext(request)) 

回答

0

你可以簡單地寫你這樣的代碼爲request.method == GET

if request.method == "GET": 
    RegisterTruckForm() 

request.method == GET之前刪除代碼,這是不必要的。

0

你可以使用例如=無添加數據和實例=對象編輯現有的數據

@login_required 
def profile_edit(request): 
    try:  
     truck_name = Product.objects.get(user=request.user) 
    except ObjectDoesNotExist: 
     truck_name = None 

    if request.method == 'GET': 
     truck_form = RegisterTruckForm(instance=truck_name) 
     return render(request, 'accounts/profile_edit.html'{'truck_form': truck_form}) 

    else: 
     truck_form = RegisterTruckForm(
         request.POST,request.FILES,instance=truck_name) 
     if truck_form.is_valid(): 
      truck_name = truck_form.save(commit=False) 
      truck_name.product = Product.objects.get(user=request.user) 
      truck_form.save_m2m() 
      truck_name.save() 
      return HttpResponseRedirect('/accounts/profile') 
     return render('accounts/profile_edit.html', {'truck_form': truck_form})