【发布时间】:2021-06-12 17:54:11
【问题描述】:
在 Django (v3.2) 应用程序的不同模板之间导航时遇到了困难。该应用程序称为“manage_remittance”。 应用的默认登录页面(使用模板 manage_remittance/templates/manage_remittance/view_remittance.html)应显示项目列表(该列表目前不相关),并在其顶部list 应该有一个链接,指向同一个应用程序中的另一个页面,这将允许将新项目添加到列表中。
首先调用的表单在这里: manage_remittance/templates/manage_remittance/view_remittance.html
{% extends "root.html" %}
{% load static %}
{% load crispy_forms_tags %}
{% url 'manage_remittance:remittance_add' as remittance_add %}
{% block title %}
VIEW REMITTANCES PAGE
{% endblock title %}
{% block content %}
<div class="list-group col-6">
<a href="{{ remittance_add }}" class="list-group-item list-group-item-action shadow-mt list-group-flush list-group-item-dark text-light">Click here to add remittance data</a>
</div>
我希望能够使用另一个模板 (manage_remittance/templates/manage_remittance/remittance_add.html),但 {{ remittance_add }} 没有任何价值。
另外,当我在a href(见上文)中指定html文件的确切名称(remittance_add.html)并单击它时,我收到以下错误:
Using the URLconf defined in sanctions_project.urls, Django tried these URL patterns, in this order:
admin/
[name='login']
login/ [name='login']
logout/ [name='logout']
manage_remittance/ [name='view_remittance']
manage_remittance/ remittance_add/ [name='create_remittance']
^static/(?P<path>.*)$
^media/(?P<path>.*)$
The current path, manage_remittance/remittance_add.html, didn’t match any of these.
我在这里做错了什么?
项目的 urls.py 片段:
urlpatterns = [
path('admin/', admin.site.urls),
path('', login_view, name='login'),
path('login/', login_view, name='login'),
path('logout/', logout_view, name='logout'),
path('manage_remittance/', include('manage_remittance.urls')), # namespace='manage_remittance'
]
manage_remittance 应用中的 urls.py:
from .views import (
CreateRemittanceInfo,
RemittanceListView
)
app_name = 'manage_remittance'
urlpatterns = [
path('', RemittanceListView.as_view(), name='view_remittance'),
path('remittance_add/', CreateRemittanceInfo.as_view(), name='create_remittance'),
]
manage_remittance 应用中的views.py:
from django.shortcuts import render, get_object_or_404
from django.urls import reverse
from django.views.generic import ListView
from django.views.generic.edit import CreateView
from django.contrib.auth.mixins import LoginRequiredMixin
from .models import Remittance
class CreateRemittanceInfo(LoginRequiredMixin, CreateView):
model = Remittance
fields = ['remittance_text']
template_name_suffix = '_add'
class RemittanceListView(ListView):
model = Remittance
template_name = 'manage_remittance/view_remittance.html'
【问题讨论】:
标签: python django templates view navigation