Как я могу вернуть данные поста в руководство HTML в представлении - PullRequest
0 голосов
/ 02 сентября 2011

У меня есть файл form.py с данными формы и некоторыми проверками, но в моем файле шаблона я использую мой html-файл вручную без его рендеринга из form.py, после публикации данных из шаблона, как я могувернуть все данные в шаблон, когда данные недействительны (проверьте в form.py) в view.py.

извините, мой вопрос не так однозначен, мой вопрос: как я могу отобразитьданные возвращаются к ручному шаблону в views.py после найденных ошибок.

Ниже приведен пример кода:

form.py (у меня много полей в форме и некоторые проверки)

class Project_f(forms.Form):

  slug=forms.CharField(max_length=100)
  ......

views.py

def post_view(request, *args, **kwargs):

    Pr_form=Project_f(request.POST,request.FILES)
    if Pr_form.is_valid():
   .........

       return HttpResponseRedirect('/admin/mpm/project/')

    '''when Pr_form is not valid'''

    c={'form': Pr_form}
    c.update(csrf(request))
    return render_to_response('project_form.html',c)

template

ручной шаблон без использования form.py, все элементы такие же, как в form.py, ноформат / виджет разный, например с некоторыми js.

Ответы [ 2 ]

0 голосов
/ 05 сентября 2011

Q: как я могу отобразить данные обратно в ручной шаблон в views.py после обнаруженных ошибок?

Я предполагаю, post_view - это обработка Pr_form вPOST запрос, хотя и GET и POST могут быть обработаны в одинаковом представлении .

A: Когда Pr_form.is_valid() возвращает False экземпляр Pr_form будет заполнен соответствующими сообщениями об ошибках и данными , введенными пользователем, поэтому, если вы вернете тот же экземпляр Pr_form, который не прошел проверку, в вашшаблон, он должен показывать вам сообщения об ошибках и данные, введенные пользователем, если вы не настроили способ отображения Pr_form в шаблоне, если так, то включите {{Pr_form.slug.errors}}, как показано здесь

0 голосов
/ 04 сентября 2011

Если вы не отправили объект формы в шаблон, вы все равно можете проверить данные.Независимо от того, к какому представлению вы отправляете, вам просто нужно проверить на request.POST, затем выполнить старый myForm = MyForm (data = request.POST), а затем myForm.is_valid ().Просто убедитесь, что форма, созданная вами в HTML, имеет свой уважаемый элемент name, установленный в вашем классе формы.

class MyForm(forms.Form):
   foo = forms.CharField()
   bar = forms.CharField()


def myView(request):
   if request.POST:
      myForm = MyForm(data=request.POST)
      if myForm.is_valid():
         """ do stuff """
      else:
         """ do stuff with errors """
   else:
      """ print a page or somthing """
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...