【问题标题】:Views return html from another app in Django视图从 Django 中的另一个应用程序返回 html
【发布时间】:2022-12-07 14:49:47
【问题描述】:

我想显示具有不同特征的数据。所以,有 2 个角色,管理员在表中有 5 列。当老师在桌子上只有 4 列时。我已经更改了 HTML,但是当我在 teacherpage views.py 上返回 classlist.html 时......它返回表上有 5 列的管理 classlist.html。

这是我的代码:

urls.py(教师APP):

from django.urls import path
from teacherpage import views

urlpatterns = [
    path('', views.index, name='index'),
    path('classlist/', views.classlist, name='classlist'),
]

Views.py(教师APP):

def classlist(request):
    data = classModel.objects.all()
    classlist= {
        "classlist" : data
    }
    return render(request,'classlist.html', classlist)

【问题讨论】:

  • 根据条件创建单独的模板和渲染模板。
  • 我试过了。但同样的事情发生了。我只是做了一些让它起作用的事情。我为两个页面创建了不同的 url .. 它起作用了。但我想要相同的网址:(
  • 您的代码未显示角色类型。否则我会在 asnwer 中给出解决方案。

标签: python django django-views django-templates


【解决方案1】:

如果没有您的项目的实际代码,它会很复杂,但这里有一个关于如何为两个不同的表使用相同的视图和相同的 html 文件的想法。例如,如果您的用户角色存储在User 模型中,那么您可以在 classlist.html 中使用此代码:

{% if user.is_authenticated %}
{% if user.role == 'admin' %}
    <table with five columns>
{% else %}
    <table with four columns>
{% endif %}
{% else %}
    no table for you
{% endif %}

仅供参考,您无需修改​​任何视图或网址即可使其正常工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多