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模板不为类别呈现的主要内容,如果未能解决你的问题,请参考以下文章