Bom dia meus amigos,
Criei uma aplicação django e indo pelo curso normal do django posso fazer a inserção de registros e consequentemente listalo em uma tabela ou lista.
Minha dúvida é: Criei um formulário modal utilizando o bootstrap e ao invés de chamar um formulário para inserir os dados em outro template gostaria de chamar um formulário modal e continuar no mesmo template da lista, assim eu ao concluir a inserção não precisaria ficar trocando de templates direto.
O motivo de ser assim é para que eu cadastre os endereços de uma pessoa sem sair do formulário de cadastro da pessoa.
Abaixo tem os códigos:
As viewsDigite o código aqui...# _*_ encoding: utf-8 _*_
from django.shortcuts import render
from django.shortcuts import render_to_response
from django.template import RequestContext
from django.contrib import messages
from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse
from models import ItemAgenda
from forms import FormItemAgenda
# Create your views here.
def lista(request):
lista_itens = ItemAgenda.objects.all()
return render_to_response("lista.html", {'lista_itens': lista_itens})
def adiciona(request):
if request.method == "POST":
form =FormItemAgenda(request.POST, request.FILES)
if form.is_valid():
form.save()
#item.save()
messages.success(request, 'Agendamento cadastrado com sucesso!')
return HttpResponseRedirect('/')
#return render_to_response("salvo.html",{})
else:
form =FormItemAgenda()
return render_to_response("adiciona.html",{'form': form},
context_instance=RequestContext(request))
Abaixo os templates:
Adiciona.htmlDigite o código aqui...{% extends "base.html" %}
{% block corpo %}
<form action="" method="post">
{% csrf_token %}
{{form.as_p}}
<button type="submit">Adicionar</button>
</form>
{% endblock %}
Lista.html{% extends 'base.html' %}
{% block corpo %}
<a href="/adiciona/">Adiciona novo agendamento</a>
<h1>Seus Agendamentos</h1>
<table>
<tr>
<th>Data</th>
<th>Hora</th>
<th>Titulo</th>
</tr>
{% for item in lista_itens %}
<tr>
<td>{{ item.data | date:'d/m/Y' }}</td>
<td>{{ item.hora }}</td>
<td>{{ item.titulo }}</td>
</tr>
{% empty %}
<li>Sem itens na lista.</li>
{% endfor %}
</table>
</section>
{% endblock %}
Gostaria que pudesse chamar um modal no Lista.htm que viesse os campos do Adiciona.html e todas as suas funcionalidades, mas conforme tentei não funciona.{% extends 'base.html' %}
{% block corpo %}
<a href="/adiciona/">Adiciona novo agendamento</a>
<div class="container" style="margin-top: 6px;">
<button class="btn btn-info" data-toggle="modal" data-target="#miventana">Abrir modal</button>
<div class="modal fade" id="miventana" tab-index="-1" role="dialog" aria-labelledby="myModalLabel" aria-hiden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4>Titulo do formulario modal!</h4>
</div>
<div class="modal-body">
<form action="" method="post">
{{form.as_p}}
</form>
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-primary" data-dismiss="modal">Adicionar</button>
<button type="button" class="btn btn-primary" data-dismiss="modal">Fechar</button>
</div>
</div>
</div>
</div>
</div>
<h1>Seus Agendamentos</h1>
<table>
<tr>
<th>Data</th>
<th>Hora</th>
<th>Titulo</th>
</tr>
{% for item in lista_itens %}
<tr>
<td>{{ item.data | date:'d/m/Y' }}</td>
<td>{{ item.hora }}</td>
<td>{{ item.titulo }}</td>
</tr>
{% empty %}
<li>Sem itens na lista.</li>
{% endfor %}
</table>
</section>
{% endblock %}Digite o código aqui...
Alguém pode me ajudar?
Obrigado.