【问题标题】:Django template not rendering for categoryDjango模板不为类别呈现
【发布时间】: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 路径
  • @AjayKhrolia 没有。您为/admin/category/list/ 定义了一个路径。您确实没有/admin/category/ 定义了路径。如果您尝试访问未定义的 URL,您将不会得到任何结果。

标签: python django python-3.x django-templates django-urls


【解决方案1】:

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

TEMPLATES = [

...

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

...

]

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

【讨论】:

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