2015-01-16 3 views
0

Я не получаю ошибок в шаблоне. Это просто возвращает мне форму без ошибок. Хотя функция загрузки работает нормально, но если я не вношу никакого ввода, это не дает мне никаких ошибок. Как я могу получить ошибки, если они есть в моем шаблоне?django модель не имеет ошибок

HTML:

{% block content %} 
    <form action="/{{ user.username }}/upload_photos/" method="post" enctype="multipart/form-data"> 
    {% csrf_token %} 
     {{ form.as_p }} 
     <input type="submit" value="Upload"/> 
    </form> 
{% endblock %} 

views.py:

def upload_photos(request, user_name): 
    user = User.objects.get(username=unquote(user_name)) 
    if request.method=='POST': 
     form = PhotoForm(request.POST, request.FILES) 
     if form.is_valid(): 
      forum = form.save(commit=False) 
      forum.user = user 
      forum.save() 
      return HttpResponseRedirect('/'+user.username+'/photos') 
     else: 
      form = PhotoForm() 
      return render(request, 'upload_photos.html',{'form':form}) 

    else: 
     form = PhotoForm() 
     return render(request, 'upload_photos.html',{'form':form}) 
+0

удалить форму 'Form = PhotoForm()', если форма недействительна. Вы заменяете поданную форму пустой. –

+0

Хорошо ... Теперь я понял. Спасибо. За работой. Также напишите свой ответ! Еще раз спасибо. – Kakar

ответ

0

Я закомментировал линию, опорожняет вашу форму.

def upload_photos(request, user_name): 
    user = User.objects.get(username=unquote(user_name)) 
    if request.method=='POST': 
     form = PhotoForm(request.POST, request.FILES) 
     if form.is_valid(): 
      forum = form.save(commit=False) 
      forum.user = user 
      forum.save() 
      return HttpResponseRedirect('/'+user.username+'/photos') 
     else: 
      # form = PhotoForm() Don't overwrite the submitted form. 
      return render(request, 'upload_photos.html',{'form':form}) 

    else: 
     form = PhotoForm() 
     return render(request, 'upload_photos.html',{'form':form}) 
+1

Вы можете сделать это еще проще, отбросив первое другое в целом и переведя окончательный оператор возврата обратно на один уровень отступа. –

+1

Я считаю это более читаемым, если оба оператора return имеют одинаковый отступ. –

Смежные вопросы