呈现多个 html 文件和视图并在单个 html 文件 Django 中显示
Render multiple html files and views and show it in single html file Django
下面显示的是我的文件
index.html
<!-- Modal -->
<div class="modal fade modal{{link.id}}" id="createmodal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Create Contact</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<form method='POST'>
{% csrf_token %}
<div class="modal-body">
{{form.as_p}}
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
<button type="Submit" class="btn btn-primary btn-delete" data-sid="{{link.id}}" >Create Contact</button>
<input type="submit" class="btn btn-primary save-btn">
</div>
</form>
</div>
</div>
</div>
new_contact.html
<!-- Modal -->
<div class="modal fade modal{{link.id}}" id="createmodal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Create Contact</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<form method='POST'>
{% csrf_token %}
<div class="modal-body">
{{form.as_p}}
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
<button type="Submit" class="btn btn-primary btn-delete" data-sid="{{link.id}}" >Create Contact</button>
<input type="submit" class="btn btn-primary save-btn">
</div>
</form>
</div>
</div>
</div>
views.py
def new_contact(request):
data = Contact.objects.all()
form = CreateContactForm()
if request.method == 'POST':
form = CreateContactForm(request.POST)
if form.is_valid():
form.save()
messages.success(request, 'Link edited successfully.')
else:
messages.error(request, form.errors)
return render(request,'app/editModal.html', context={'form':form,'data':data})
def index(request):
data = Contact.objects.all()
return render(request,'app/editModal.html', context={'form':form})
我想在 index.html
文件中渲染 new_contact.html
文件。我已经使用了 include 标签,但它不符合我的要求。 include 标签将 html 文件包含到索引文件中,但不呈现 new_contact
函数。
我想将具有 new_contact
函数的 new_contact.html
文件渲染到 index.html
文件中。
谢谢
一条重要规则:Don't repeat yourself!
。或者您可能错误地粘贴了相同的 html 代码?
你不能也不应该混合不同的观点。另外,您不能有两个同名的 forms
,因为第一个会被第二个覆盖。
下面显示的是我的文件
index.html
<!-- Modal -->
<div class="modal fade modal{{link.id}}" id="createmodal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Create Contact</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<form method='POST'>
{% csrf_token %}
<div class="modal-body">
{{form.as_p}}
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
<button type="Submit" class="btn btn-primary btn-delete" data-sid="{{link.id}}" >Create Contact</button>
<input type="submit" class="btn btn-primary save-btn">
</div>
</form>
</div>
</div>
</div>
new_contact.html
<!-- Modal -->
<div class="modal fade modal{{link.id}}" id="createmodal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Create Contact</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<form method='POST'>
{% csrf_token %}
<div class="modal-body">
{{form.as_p}}
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
<button type="Submit" class="btn btn-primary btn-delete" data-sid="{{link.id}}" >Create Contact</button>
<input type="submit" class="btn btn-primary save-btn">
</div>
</form>
</div>
</div>
</div>
views.py
def new_contact(request):
data = Contact.objects.all()
form = CreateContactForm()
if request.method == 'POST':
form = CreateContactForm(request.POST)
if form.is_valid():
form.save()
messages.success(request, 'Link edited successfully.')
else:
messages.error(request, form.errors)
return render(request,'app/editModal.html', context={'form':form,'data':data})
def index(request):
data = Contact.objects.all()
return render(request,'app/editModal.html', context={'form':form})
我想在 index.html
文件中渲染 new_contact.html
文件。我已经使用了 include 标签,但它不符合我的要求。 include 标签将 html 文件包含到索引文件中,但不呈现 new_contact
函数。
我想将具有 new_contact
函数的 new_contact.html
文件渲染到 index.html
文件中。
谢谢
一条重要规则:Don't repeat yourself!
。或者您可能错误地粘贴了相同的 html 代码?
你不能也不应该混合不同的观点。另外,您不能有两个同名的 forms
,因为第一个会被第二个覆盖。