2017-02-16 3 views
0

У меня есть форма, которая отображает таблицу с данными и два варианта выпадающего списка, которые вы можете выбрать дату/год для отображения данных, поэтому я возвращаю context для стола и с get_initial Я заполнение выпадающих списков для использования текущей даты и времени.django post перенаправляет на свою страницу

Мой вопрос заключается в том, как сделать POST запрос перенаправляется на своей собственной странице GET, идея состоит в том, чтобы установить значения в некоторых параметров запроса в URL, как ?month=1&year=2016, но я не знаю, с чего начать, может кто-то помочь мне Поймите это, спасибо.

from django.views.generic.edit import FormView 
from django.utils import timezone 

from .models import Rate 
from statistics.forms import StatisticsForm 
from statistics.services import StatisticsCalculation 


class StatisticsView(FormView): 
    template_name = "statistics/invoice_statistics.html" 
    form_class = StatisticsForm 

    def get_initial(self): 
     initial = super(StatisticsView, self).get_initial() 
     initial["month_choice"] = timezone.now().month 
     initial["invoice_year"] = timezone.now().year 
     return initial 

    def get_context_data(self, **kwargs): 
     context = super(StatisticsView, self).get_context_data(**kwargs) 

     default_currency = Rate.EUR 
     currency_usd = Rate.USD 
     currency_gbp = Rate.GBP 

     context["can_view"] = self.request.user.is_superuser 
     context["currency"] = default_currency 
     context["currency_usd"] = currency_usd 
     context["currency_gbr"] = currency_gbp 
     context["statistic"] = StatisticsCalculation.\ 
      statistic_calculation(supplier_default_currency) 
     context["statistic_usd"] = StatisticsCalculation. \ 
      calculation(supplier_default_currency_usd) 
     context["statistic_gbp"] = StatisticsCalculation. \ 
      statistic_calculation(supplier_default_currency_gbp) 
     return context 

url для формы:

url(r'^statistic/$', login_required(views.StatisticsView.as_view()), name='statistics') 

шаблона:

<form action="" method="post">{% csrf_token %} 
<div class="" id=""> 
    <label for="{{ form.month.month_choice }}"></label> 
     {{ form.month_choice }} 
</div> 
<br> 
<div class="" id=""> 
    <label for="{{ form.year.invoice_year }}"></label> 
     {{ form.invoice_year }} 
</div> 
<br> 
    # rest of the html 

ответ

0

сообщений разместят где вы установите их в HTML форме.

Установка элемента формы, как и будет, будет отправлять как сообщения, так и сообщения в ваше представление, если вы правильно установили urls.py.

<form method='post' action =''> 

Ваш url_patterns должен включать строки что-то вроде:

url(r'the-url-you want-to-use', StatisticsView.as_view(), name='name_for_reverse_function') 
+0

поэтому 'url' трюк здесь, это просто' url', так что вы можете объяснить мне, как установить мой 'URL ', позвольте мне уточнить мой вопрос. – PetarP

+0

Это выглядит правильно, на какие взгляды направлены ваши URL-адреса? –

+0

точно, что я получаю, дело в том, что форма перенаправляется, когда я хочу просматривать данные, и я не хочу этого, я хочу, чтобы он остался на этой странице и показал мне больше данных - что вы имеете в виду, m, используя 'FormView', это в моем вопросе, у меня простая форма с двумя полями за месяц и год – PetarP