【发布时间】:2021-05-15 06:18:18
【问题描述】:
当用户点击某个类别的链接时,我会尝试显示包含该类别帖子的页面
这是我的 urls.py 文件:
from django.urls import path
from .views import PostHomeView,PostDetail,NavFooter,PostPageView
urlpatterns = [
path('navbar', NavFooter, name='Nav_Footer'),
path('', PostHomeView.as_view(), name ='home'),
path('PostDetail/<int:pk>', PostDetail.as_view(), name ='post_detail'),
path('PostPage/', PostPageView, name ='post_page'),
]
这是我的 view.py 文件
from django.shortcuts import render
from django.http import HttpResponse
from django.views.generic import ListView,DetailView
from .models import Post, TaskCategory
def NavFooter(request):
return render(request,"nav_footer.html", {})
class PostHomeView(ListView):
model = Post
context_object_name = 'post'
template_name = 'home.html'
def get_queryset(self):
return Post.objects.order_by('task_title')[:9]
def PostPageView(reguest):
posts = Post.objects.all()
category = TaskCategory.objects.all()
return render(reguest,'post_page.html',{'posts':posts,'category':category})
class PostDetail(DetailView):
model = Post
template_name = 'post_detail.html'
这是 models.py 文件:
from django.contrib.auth.models import User
from django.db import models
class TaskCategory(models.Model):
category_title = models.CharField(max_length=50)
def __str__(self):
return self.category_title
class Post(models.Model):
task_category = models.ForeignKey(TaskCategory, on_delete=models.CASCADE)
recommended_tools = models.CharField(max_length=250)
budget = models.CharField(max_length=250)
def __str__(self):
return self.task_title + ' | ' + self.task_discription + ' | ' + str(self.task_category) + ' |
' + self.recommended_tools + ' | ' + self.budget
通过 html 访问此文件的最快方式
【问题讨论】:
-
借助类别字段
标签: html django django-models django-views django-urls