You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Django父模板设置动态URL及视图、URL配置相关问题

Django 导航菜单动态 href 实现问题解答

1. 能否基于当前目录结构将current_week视图与base.html配合使用?

完全可以,推荐用全局上下文处理器实现,这是适配全局父模板的最优方案:

  • 无需在每个子视图中重复传递current_week数据,一次性配置后所有模板均可直接调用
  • 具体操作步骤:
    1. 在你的app目录下创建context_processors.py文件
    2. 写入处理器函数(复用现有current_week视图逻辑):
      from django.utils import timezone
      from .models import Week
      
      def current_week_processor(request):
          current_week = Week.objects.filter(
              start_date__lte=timezone.now(), 
              end_date__gte=timezone.now()
          ).first()
          return {'current_week': current_week}
      
    3. 在项目settings.py的TEMPLATES配置中,将该处理器添加到context_processors列表:
      TEMPLATES = [
          {
              ...
              'OPTIONS': {
                  'context_processors': [
                      ...
                      'my_app.context_processors.current_week_processor',
                  ],
              },
          },
      ]
      
    4. 之后在base.html中直接调用数据,比如:
      <a href="{% url 'current-week' current_week.id %}">当前周赛事</a>
      

2. views.py和urls.py应放在base.html的什么位置?标注***的文件位置是否正确?

Django严格分离后端逻辑与模板文件:

  • base.html属于模板文件,需放在app的templates目录(如my_app/templates/my_app/base.html)或项目根目录的templates目录
  • views.py和urls.py属于后端逻辑文件,必须放在你的app目录下(如my_app/views.py、my_app/urls.py)
  • 若标注***的文件是放在app目录下,则位置正确;如果放在templates目录里,完全不符合Django规范,必须立即移到app目录。

3. 如何将标注***的urls.py与my_project目录下含admin和my_app路径的urls.py关联?

在项目根目录的my_project/urls.py(含admin路由的文件)中,通过include集成app的路由:

  1. 先导入include模块:
    from django.urls import path, include
    
  2. 在urlpatterns列表中添加app路由的引用:
    urlpatterns = [
        path('admin/', admin.site.urls),
        # 将my_app的urls关联进来,前缀可自定义
        path('my_app/', include('my_app.urls')),
    ]
    
  3. 此后my_app/urls.py中定义的所有路由,都会自动带上my_app/前缀。比如在app urls中定义path('current-week/<int:pk>/', views.current_week, name='current-week'),最终访问路径为/my_app/current-week/1/。

内容的提问来源于stack exchange,提问作者mussbus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 22:23:16