Python 当我点击一篇文章时,我需要它<&燃气轮机;它’;这篇文章的名字叫什么
我需要的是,当我点击一篇文章时,它被称为文章的名称 例如,现在,当我点击一篇文章时,我转到url地址news/1,但我需要的不是1,而是一个类似于此图片的名称。或者这里是另一个首映式,我称这篇文章为“如何逃学”,url地址将类似于此新闻/如何逃学 views.pyPython 当我点击一篇文章时,我需要它<&燃气轮机;它’;这篇文章的名字叫什么,python,django,url,Python,Django,Url,我需要的是,当我点击一篇文章时,它被称为文章的名称 例如,现在,当我点击一篇文章时,我转到url地址news/1,但我需要的不是1,而是一个类似于此图片的名称。或者这里是另一个首映式,我称这篇文章为“如何逃学”,url地址将类似于此新闻/如何逃学 views.py class ArticleIndex(ListView): model = Articles template_name = 'news/posts.html' def ArticleDetailView(requ
class ArticleIndex(ListView):
model = Articles
template_name = 'news/posts.html'
def ArticleDetailView(request, pk):
tag=None
Articles.objects.filter(pk=pk).update(view=F('view') + 1)
Articles.objects.all()
article_details = Articles.objects.filter(pk=pk).first()
if request.method == 'POST':
comment_form = Comments(request.POST)
comment_form.save()
else:
comment_form = Comments()
commentss = CommentModel.objects.all()
return render(request, 'news/post.html', {'article_details': article_details,
'comment_form': comment_form, 'comments': commentss,
'tag': tag
})
url.py
path('', ArticleIndex.as_view(), name='articles_list'),
path('<int:pk>/', views.ArticleDetailView, name='article_detail'),
这叫做鼻涕虫。您可以向模型中添加段塞,例如使用,但最好安装,并使用:
来自django.db导入模型的
从autoslug导入AutoSlugField
类别文章(models.Model):
title=models.CharField(最大长度=200)
slug=AutoSlugField(从class='title'填充_)
post=models.TextField()
日期=型号。日期时间字段()
img=models.ImageField(上传到='',默认值='',详细名称='kerkааиаиаа260а180')
tags=TaggableManager()
article\u like=models.IntegerField(默认值为0)
article\u=models.IntegerField(默认值为0)
view=models.IntegerField(默认值为0)
datesArticle=models.DateTimeField(auto\u now=True)
类元:
排序=['-datesArticle']
定义(自我):
返回自己的标题
您可以更改URL模式以解析段塞,如:
path('', ArticleIndex.as_view(), name='articles_list'),
path('<slug:slug>/', views.article_detail_view, name='article_detail'),
path(“”,ArticleIndex.as_view(),name='articles_list'),
路径(“/”,views.article\u detail\u view,name='article\u detail'),
在您看来,您可以使用以下方法处理段塞:
def ArticleDetailView(request, slug):
tag=None
Articles.objects.filter(slug=slug).update(view=F('view') + 1)
article_details = Articles.objects.filter(slug=slug).first()
if request.method == 'POST':
comment_form = Comments(request.POST)
if comment_form.is_valid():
comment_form.save()
return redirect('some-view-name')
else:
comment_form = Comments()
comments = CommentModel.objects.all()
return render(
request,
'news/post.html',
{
'article_details': article_details,
'comment_form': comment_form,
'comments': comments,
'tag': tag
}
)
def articletailview(请求,slug):
标记=无
Articles.objects.filter(slug=slug).update(view=F('view')+1)
article\u details=Articles.objects.filter(slug=slug.first)()
如果request.method==“POST”:
评论形式=评论(request.POST)
如果注释形式有效():
注释\表单保存()
返回重定向('some-view-name')
其他:
注释形式=注释()
comments=CommentModel.objects.all()
返回渲染(
要求
“news/post.html”,
{
“文章详细信息”:文章详细信息,
“注释形式”:注释形式,
“评论”:评论,
“标记”:标记
}
)
请注意,您应该检查表单是否有效,如果成功,最好重定向到另一个视图,以实现。这称为slug。您可以向模型中添加段塞,例如使用,但最好安装,并使用:
来自django.db导入模型的
从autoslug导入AutoSlugField
类别文章(models.Model):
title=models.CharField(最大长度=200)
slug=AutoSlugField(从class='title'填充_)
post=models.TextField()
日期=型号。日期时间字段()
img=models.ImageField(上传到='',默认值='',详细名称='kerkааиаиаа260а180')
tags=TaggableManager()
article\u like=models.IntegerField(默认值为0)
article\u=models.IntegerField(默认值为0)
view=models.IntegerField(默认值为0)
datesArticle=models.DateTimeField(auto\u now=True)
类元:
排序=['-datesArticle']
定义(自我):
返回自己的标题
您可以更改URL模式以解析段塞,如:
path('', ArticleIndex.as_view(), name='articles_list'),
path('<slug:slug>/', views.article_detail_view, name='article_detail'),
path(“”,ArticleIndex.as_view(),name='articles_list'),
路径(“/”,views.article\u detail\u view,name='article\u detail'),
在您看来,您可以使用以下方法处理段塞:
def ArticleDetailView(request, slug):
tag=None
Articles.objects.filter(slug=slug).update(view=F('view') + 1)
article_details = Articles.objects.filter(slug=slug).first()
if request.method == 'POST':
comment_form = Comments(request.POST)
if comment_form.is_valid():
comment_form.save()
return redirect('some-view-name')
else:
comment_form = Comments()
comments = CommentModel.objects.all()
return render(
request,
'news/post.html',
{
'article_details': article_details,
'comment_form': comment_form,
'comments': comments,
'tag': tag
}
)
def articletailview(请求,slug):
标记=无
Articles.objects.filter(slug=slug).update(view=F('view')+1)
article\u details=Articles.objects.filter(slug=slug.first)()
如果request.method==“POST”:
评论形式=评论(request.POST)
如果注释形式有效():
注释\表单保存()
返回重定向('some-view-name')
其他:
注释形式=注释()
comments=CommentModel.objects.all()
返回渲染(
要求
“news/post.html”,
{
“文章详细信息”:文章详细信息,
“注释形式”:注释形式,
“评论”:评论,
“标记”:标记
}
)
请注意,您应该检查表单是否有效,如果成功,最好重定向到另一个视图,以实现。这些称为“slug”-这些称为“slug”-