2015-11-04 3 views
1

В моем шаблоне choose_values.html У меня есть раскрывающийся список, и я выбираю некоторые значения. Я могу передать эти значения как QueryDict в представление tomatos, назначив request.POST переменной.метод django POST и Querydict

Я хотел бы использовать выбранные значения в фильтре ввиду tomatos

Я не знаю, как извлечь выбранные значения из этого QueryDict.

это пример QueryDict:

<QueryDict: {u'csrfmiddlewaretoken': [u'pFs9fj5MLQML7KLYHXFeCWTSvuMFEoML'], u'dropdown1': [u'project1'], u'dropdown2': [u'S1'], u'dropdown3': [u'S1.2']}> 

, как я могу это сделать?

choose_values.html

CHOOSE_VALUES 
<form method="post" action="{% url 'projects:manage_values' %}">{% csrf_token %} 

    <select name="dropdown1"> 
     <option value="project1">project1</option> 
     <option value="project1">project2</option> 
    </select> 

    <select name="dropdown2"> 
     <option value="S1">S1</option> 
     <option value="S2">S2</option> 
     <option value="all">all</option> 
    </select> 

    <select name="dropdown3"> 
     <option value="S1.1">S1.1</option> 
     <option value="S1.2">S1.2</option> 
     <option value="all">all</option> 
    </select> 

    <input type="submit" value="submit" /> 
</form> 

томатов смотреть

def tomatos(request): 
    context = RequestContext(request) 
    ZoneSubFormSet = modelformset_factory(ZoneSubStage, fields=('zone', 'substage','value'),max_num=2) 
    dupa=request.POST 
    print dupa 
    if request.method == 'POST': 
     formset = ZoneSubFormSet(queryset=ZoneSubStage.objects.filter(substage__stage__stage_name='S1', 
                     substage__stage__project__name='project1', 
                     zone__zone_name='z1')) 
    else: 
     formset = ZoneSubFormSet(queryset=ZoneSubStage.objects.filter(substage__stage__stage_name='S2', 
                     substage__stage__project__name='project1', 
                     zone__zone_name='z2')) 

    return render_to_response('autostages/update_values.html', {'formset': formset}, context) 

EDIT

Я не уточняю значение каких-либо причины, и я не знаю, почему.

def tomatos(request): 
    context = RequestContext(request) 
    ZoneSubFormSet = modelformset_factory(ZoneSubStage, fields=('zone', 'substage','value'),max_num=2) 
    value1=str(request.POST.get('dropdown1')) 
    value2=str(request.POST.get('dropdown2')) 
    value3=str(request.POST.get('dropdown3')) 
    if request.method == 'POST': 
     formset = ZoneSubFormSet(queryset=ZoneSubStage.objects.filter(substage__stage__project__name=value1, 
                     substage__stage__stage_name=value2, 
                     zone__zone_name=value3)) 
     if formset.is_valid(): 
      formset.save(commit=True) 
    else: 
     formset = ZoneSubFormSet(queryset=ZoneSubStage.objects.filter(substage__stage__project__name=value1, 
                     substage__stage__stage_name=value2, 
                     zone__zone_name=value3)) 

    return render_to_response('autostages/update_values.html', {'formset': formset}, context) 

ответ

1

Вы можете работать с этим QueryDict как обычный Словаре, в данном случае, например, если вы хотите получить dropdown1 значение:

request.POST.get('dropdown1') 
+0

привет, по некоторым причинам я не обновляю свой Дата. вы можете помочь? Я обновил код в своем сообщении выше, и я вижу, что я не выполняю formet.save() – BlueTomato

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