Django模板不为类别呈现

Posted

技术标签:

【中文标题】Django模板不为类别呈现【英文标题】:Django template not rendering for category 【发布时间】:2020-08-02 14:20:27 【问题描述】:

我已经为类别列表创建了一个函数。如果 URL 为 '/admin/category/list/' 但模板扩展模板不显示为 '/admin/category/' 则成功呈现,仅显示基本模板。 这是views.py中的函数:

def categoryList(request):

    q_name = request.GET.get('query','')
    c_name = request.GET.get('select_category','')
    hasform = request.GET.get('type','')
    if q_name:
        data = Category.objects.filter(Q(name__contains=q_name))
    elif hasform:
        frmid =[]
        forms = FormModel.objects.all()
        for form in forms:
            frmid.append(form.category_id)
        data = Category.objects.filter(id__in=frmid,parent_id__isnull=True)
        print(data)
    else:
        data = Category.objects.filter(parent_id__isnull=True) 

    if c_name:
        c_name = int(c_name)
        data = Category.objects.filter(id=c_name)

    paginator = Paginator(data, 10)

    page = request.GET.get('page', 1)

    try:
        data = paginator.page(page)
    except PageNotAnInteger:
        data = paginator.page(1)
    except EmptyPage:
        data = paginator.page(paginator.num_pages)

    all_category = Category.objects.filter(parent_id=None).order_by("name")
    return render(request,'admin/category/categorylist.html','categories':data,
    'q_name' : q_name,'all_category':all_category,'c_name':c_name)

这里是 urls.py:

from django.urls import path
from category import views
app_name = "category"

urlpatterns = [
    path('list/',views.categoryList,name="categorylist"),
]

【问题讨论】:

您没有为/admin/category/ 定义URL 路径,只有/admin/category/list/ 的模式。如果您想要前者的视图,则需要在您的 urlpatterns 中调用 path 并使用 "/" 指向适当的视图。 我认为模板有问题而不是视图,请您添加模板 @wmorrell 项目 urls.py 中定义的 url 路径 @DhruvAgarwal filebin.net/9nhwfirwton7msmk/categorylist.html?t=f2tbdr5w @AjayKhrolia 没有。您为/admin/category/list/ 定义了一个路径。您确实没有/admin/category/ 定义了路径。如果您尝试访问未定义的 URL,您将不会得到任何结果。 【参考方案1】:

首先,在 settings.py 文件中定义模板路径,如:

TEMPLATES = [

...

        'DIRS': [os.path.join(BASE_DIR, 'templates')],

...

]

并确保您在应用目录中创建了templates/admin/category/<template name>

【讨论】:

这已经完成了。它不适用于 url 'admin/category' 否则工作正常。

以上是关于Django模板不为类别呈现的主要内容,如果未能解决你的问题,请参考以下文章

在 django 模板中显示字典索引或键名

如何计算 Django 模板中的产品?

Django-模板标签方法

Django模板if语句返回错误值

django 模型中每个类别的最新条目

django按类别列出,带有indexview和detailview类