2010-07-09 3 views
0

Можно ли выполнить в django такую ​​операцию, что в одном представлении я присваиваю значение возврата из другого представления, которое отображает свой собственный шаблон формы и основываясь на нем, возвращает значение? (Таким образом, другими словами, если в этой форме, оказанной другим пользователем функции нажмет ОК, я возвращает истину, а если пользователь нажмет отменить я вернуть ложные) код примера:Значение из формы одного вида в другое представление

Основная функция: функция

def my_func(request): 
    result = False 
    result = redirect('some_url') 

    if result: 
     redirect somewhere 
    else: 
     redirect somewhere else 

ребенка вызывается из родителей с 'some_url':

def some_url_func(request): 
    if request.POST.get("action") == "ok": 
     return True 
    elif if request.POST.get("action") == "cancel": 
     return False  

Форма:

<form action="some_url_func" method="post"> 
    <input type="submit" class="submit" name="submit" action="ok" value="Ok" /> 
    <input type="submit" class="submit" name="submit" action="cancel" value="Cancel" /> 
</form> 

Так барельефа Можно ли переходить через один вид в какую-либо форму, а затем возвращаться к этой точке зрения?

+0

'my_func' не имеет никакого смысла. Во всяком случае, 'action' вашей формы должен иметь URL-адрес, который ссылается на' some_url_func'. Какое представление делает форму несущественной. –

+0

Так много чего не так с этим. Ваша «дочерняя функция» не имеет никакого отношения к основной функции. Кажется довольно беспорядочной логикой иметь функцию, которая может возвращать логический или HttpResponse в разных ситуациях. Ваша форма использует атрибуты на входных тегах и имеет ненужный enctype. Помимо всего этого, я даже не могу понять, что вы на самом деле пытаетесь сделать. – SmileyChris

+0

Это просто идея, поэтому почему это не имеет смысла. Идея заключается в следующем: «my_func показывает форму. Когда форма отправляется, она должна открыть другую форму с двумя кнопками:« ОК »и« Отмена ». В зависимости от выбора my_func выполнит какое-то действие. Итак, как я могу добиться этого? – muntu

ответ

0

Как уже упоминалось выше, ваша первая функция не имеет никакого смысла; но я думаю, что ваша основная идея заключается в том, что вы можете просто вызвать другую функцию с вашим request и посмотреть на возвращаемое значение; но вы не должны называть его функцией просмотра, если он не возвращает объект HttpResponse, это просто какая-то вспомогательная функция. Я думаю, что вы хотели сделать, это:

def my_func(request): 
    result = some_url_func(request) 
    if result: 
     redirect somewhere 
    else: 
     redirect somewhere else 

Но, может быть, вы должны поставить свою вторую функцию, то в модуле, как utils, так как его более вспомогательную функцию, чем вид!

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