2012-04-17 3 views
1

Пожалуйста, помогите это newbye !!!слияние разных видов в одном шаблоне django

У меня есть два различных вида:

@login_required 
@csrf_protect 
def viewone(request): 

#some code here... 

if request.method == 'POST': 
    form = ViewOne(request.POST) 
    if form.is_valid(): 
     try: 
      #some code here 

     return response 
else: 
    form = ViewOne() 

return render_to_response('templateone.html', { 'form': form, }, context_instance=RequestContext(request)) 

@login_required 
@csrf_protect 
def viewtwo(request): 

if request.method == "GET": 

    #code here 

    return render_to_response('templatetwo.html', {'form1': MyForm(request.GET)}, context_instance=RequestContext(request)) 
else: 
    return render_to_response('templatetwo.html', {'form1': MyForm()}, context_instance=RequestContext(request)) 

я хочу знать, как объединить/рендеринга эти мнения в том же шаблоне, чтобы использовать функциональные возможности как! пожалуйста, помогите мне следовать правильному направлению!

ответ

2

Было бы хорошо, если бы вы были более ясны в своем вопросе, так как я думаю, что не совсем понимаю, чего вы хотите. Но если да, вот пара вариантов:
1) Если вы можете отделить свою логику от некоторых функций, сделайте это. Затем вы можете вызвать эти функции из своего третьего представления, получить шаблонные аргументы и отобразить шаблон со всем, что вы хотите.
2) Вы также можете загрузить эти два шаблона отдельно на одной странице с помощью ajax.

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

0

Если вы хотите совместить одни и те же формы в одном шаблоне с одной точки зрения:

from django.shortcuts import render 

@login_required 
@csrf_protect 
def viewone(request): 

    ctx = {} # context dict 
    if request.method == 'GET': 
    # code here 
    form1 = MyForm(request.GET) 
    ctx['form1'] = form1 
    return render(request,'template.html',ctx) 

    if request.method == 'POST': 
    form = ViewOne(request.POST) 
    if form.is_valid(): 
     # code here 
     return render(request,'some.html') 
    else: 
     form = ViewOne() 
     ctx['form'] = form 
     return render(request,'template.html',ctx) 

Затем в template.html:

{% if form %} 
    {{ form }} 
{% endif %} 

{% if form1 %} 
    {{ form1 }} 
{% endif %} 
Смежные вопросы