Django 如何将模板视图和slug定义添加到一个视图中?
所以我正在做一些Django,但有点陌生。我有一段代码:Django 如何将模板视图和slug定义添加到一个视图中?,django,django-models,django-views,Django,Django Models,Django Views,所以我正在做一些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/artic
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 })
如何将其写入一个视图,以便在我的URL.py中使用
现在这是我的URL.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'),
]
从django.conf.url导入url,包括
from.views导入视图\u post
URL模式=[
url(r'^blog/view/(?P[^\.]+),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
是否要将这两个视图合并为一个?是的,或者在URL.py中将它们合并在一起?但是我不知道怎么做。在view\u post中创建ArticleView的对象。这种方式可能会帮助您如何在模板中使用文章的变量?我的urls.py现在看起来是这样的:
urlpatterns=[url(r'^news/(?P[^\]+),ArticleView.as_view(),name='view_blog_post'),]
没问题吧?啊,找到了{post.object}
谢谢您的解决方案!