如何将模板视图和slug定义添加到一个视图中?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将模板视图和slug定义添加到一个视图中?相关的知识,希望对你有一定的参考价值。
所以我正在研究一些Django但对它有点新意。我有这段代码:
from django.shortcuts import render, render_to_response, get_object_or_404
from .models import Article
from django.views.generic import TemplateView
def view_post(request, slug):
return render_to_response('news/article.html', {'post': get_object_or_404(Article, slug=slug)})
class ArticleView(TemplateView):
template_name = "news/article.html"
def get(self, request):
article = Article.objects.all()
return render(request, self.template_name ,{'article': article })
如何将其写入一个视图,以便我可以在我的urls.py中使用它?
现在这是我的urls.py:
from django.conf.urls import url, include
from .views import view_post
urlpatterns = [
url(r'^blog/view/(?P<slug>[^\.]+)', view_post , name='view_blog_post'),
]
我怎样才能将它们一起添加?因为我也希望变量在我的模板中可用。
答案
我想这就是你想要的。
class ArticleView(DetailView):
query_pk_and_slug = 'slug'
template_name = 'news/article.html'
context_object_name = 'post'
model = Article
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['article'] = Article.objects.all()
return context
以上是关于如何将模板视图和slug定义添加到一个视图中?的主要内容,如果未能解决你的问题,请参考以下文章
难以将 slug 添加到 Django 中的通用详细信息视图
如何以编程方式将 UISegmentedControl 添加到容器视图