提问人:wdchild 提问时间:9/22/2023 更新时间:9/22/2023 访问量:11
当同一个 Django 模型文件中的两个模型时的模板期望
template expectations when two models within same Django model file
问:
我在 Django 网球阶梯应用程序中有两个不同的(相关)模型类:和 .对于相应的视图文件,我在同一文件中包含两组相应的基于类的视图。我还将所有网址都包含在同一个文件中。这些如下所示:Ladder
Player
from django.urls import path
from .views import HomePageView, PlayerListView, PlayerDetailView, \
PlayerEditView, PlayerCreateView, PlayerDeleteView, \
LadderListView, LadderDetailView, LadderDeleteView
urlpatterns = [
path('', HomePageView.as_view(), name='home'),
path('players/', PlayerListView.as_view(), name='players'),
path('player/detail/<int:pk>/', PlayerDetailView.as_view(), name='player_detail'),
path('player/edit/<int:pk>/', PlayerEditView.as_view(), name='player_edit'),
path('player/create/', PlayerCreateView.as_view(), name='player_create'),
path('player/delete/<int:pk>/', PlayerDeleteView.as_view(), name='player_delete'),
path('ladder_history/', LadderListView.as_view(), name = 'ladder_history'),
path('ladder/detail/<int:pk>/', LadderDetailView.as_view(), name = 'ladder_detail'),
path('ladder/delete/<int:pk>/', LadderDeleteView.as_view(), name='ladder_delete'),
]
在项目 url 中,我包含此 urls 文件的路径,如下所示。
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('accounts/', include('django.contrib.auth.urls')),
path('', include('players.urls')),
path('', include('matches.urls')),
path('accounts/', include('accounts.urls')),
]
这就是问题所在。当我单击一个按钮以拉出ladder_history时,Django 似乎希望模板位于
TemplateDoesNotExist at /ladder_history/
players/ladder_list.html
Request Method: GET
Request URL: http://127.0.0.1:8000/ladder_history/
Django Version: 4.2.5
Exception Type: TemplateDoesNotExist
Exception Value: players/ladder_list.html
我完全被迷惑了。我没有“ladder_list.html”,而是“ladder_history.html”,正如我在 ListView 中指定的那样。
# players.view.py
...
class LadderListView(ListView):
model = Ladder
template = 'ladder_history.html'
ordering = ['date']
context_object_name = 'past_ladders'
所有模板都位于同一个 TEMPLATES 目录中,其他模型都没有问题。(Match 类位于不同的应用中,因为它需要单独的逻辑。
异常值从何处生成?假设它将被称为“ladder_list”而不是我在 LadderListView 中所说的,这很奇怪。此外,在路径中添加“玩家”似乎表明我有义务为每个模型使用不同的应用程序?我的印象是,您可以在同一个应用程序中拥有相关模型。players/ladder_list.html
我该如何解决这个问题?
答: 暂无答案
评论