我有一个简单的笔记,我想将我的应用程序的一部分合并到一个 html 页面中。一页有提交笔记的表格,而另一页显示结果。我想在同一页面上同时显示表单和结果。
我正在尝试使用 Django 的模板继承来实现这一点,但结果并没有按计划工作。当以我的方式(显然不正确)使用它时,结果不显示,只显示表单中的“提交”按钮;不是实际的形式。
这应该相当简单,但我已经尝试了几种变体并研究了几个小时的潜在解决方案和模板文档,但没有成功。
如果有人可以说明我做错了什么,将不胜感激。
这是带有基本表单模板的代码:
{% extends 'base.html' %}
{% block page_title %}Notebook{% endblock %}
{% block headline %}Notebook{% endblock %}
{% block content %}
<h2>Headline</h2>
<div class="row">
<div class="span8">
<form action="" method="post">{% csrf_token %}
{{ form.as_p }}
<input type="submit" class="btn btn-primary" value="Submit" />
</form>
</div>
</div>
{% endblock %}
这是尝试的扩展形式,理想情况下包含形式和结果:
{% extends 'report/write_note.html' %}
{% block extendscontent %}
<div class="span4 offset8">
{% if notes %}
{% for note in user.notes.all reversed %}
<h3>{{ note.title }}</h3>
<p>{{ note.date }}</p>
<p>{{ note.copy }}</p>
{% endfor %}
{% else %}
<p>You have no notes stored.</p>
{% endif %}
</div>
{% endblock extendscontent %}
以下是观点:
@login_required
def submit_note(request):
if request.method == 'POST':
notes_form = NotesForm(request.POST, request.FILES)
if notes_form.is_valid():
new_note = notes_form.save(commit=False)
new_note.author = request.user
new_note.save()
return HttpResponseRedirect( "" )
else:
notes_form = NotesForm()
return render_to_response("report/write_note.html", {'form': notes_form}, context_instance=RequestContext(request))
@login_required
def all_notes(request):
all_notes = Notes.objects.all().order_by('-date')
paginate = paginated_stories(request, all_notes)
return render_to_response("report/notes.html",
{'notes': paginate},
context_instance=RequestContext(request))