ajib6ept
А какая логика? зачем необходимо два шаблона?
Объеденить форму и вывод из бд на одной странице
views.py:
# -*- coding:utf-8 -*-
from django.template import RequestContext
from django.core.context_processors import csrf
from django.shortcuts import render_to_response
from django.http import HttpResponse, Http404
from mysite.forms import VvodForm
from mysite.models import Vvod, Vivod
import datetime
def vvodfun(request):
c = {}
if request.method == 'POST':
form = VvodForm(request.POST)
c.update(csrf(request))
if form.is_valid():
form.save()
else:
form = VvodForm()
c = RequestContext(request, {'form': form})
return render_to_response('form_vvoda.html', c)
def vivodfun(request):
vivod_list = Vivod.objects.all()
return render_to_response('vivod.html', {'vivod_list': vivod_list})
models.py:
from django.db import models
class Vvod(models.Model):
primervvod = models.CharField(max_length=30)
def __unicode__(self):
return self.primervvod
class Vivod(models.Model):
primervivod = models.CharField(max_length=30)
def __unicode__(self):
return self.primervivod
forms.py:
from django.forms import ModelForm
from mysite.models import Vvod
class VvodForm(ModelForm):
class Meta:
model = Vvod
fields = ['primervvod']
urls.py
from django.conf.urls import *
from mysite.views import vvodfun, koren, vivodfun
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
(r'^$', koren),
(r'^admin/', include(admin.site.urls)),
(r'^vvod/$', vvodfun),
(r'^vivod/$', vivodfun),
)
Шаблоны:
Родитель:
<!DOCTYPE html>
<html>
<head>
<title>werwffw</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
{% block content %}
{% endblock%}
{% block form %}
{% endblock %}
</body>
</html>
Первый дочерний:
{% extends "base.html" %}
{% block content%}
{% for v in vivod_list %}
<div>{{ v }}</div>
{% endfor %}
{% endblock %}
Второй:
{% extends "base.html" %}
{% block form %}
<form action="" method="post">
{% csrf_token %}
{{ form }}
<input type="submit" value="Отправить">
</form>
{% endblock %}