我是相當新的Django,我希望我能夠正確地制定我的問題,請裸露在我身邊。使用Django Logic來添加CSS類基於URL與slu 012
我有什麼權利現在:
一個簡單的個人網站,一個博客節。當我從導航欄轉到不同的列表項目時,如果li處於活動狀態,它將添加一個「激活」類。問題發生在我的博客部分。
我想實現:
當我添加了「激活」類的博客節和博客這樣的鏈接將被激活。我用我的帖子網址slu g。
我有什麼權利現在它不工作:
template.html
<li class="{% if request.resolver_match.url_name == "index" %}activate{% endif %}"><a href='/'>Home</a></li>
<li class="{% if request.resolver_match.url_name == "blog" %}activate{% endif %}"><a href='/blog/'>Blog</a></li>
<li class="{% if request.resolver_match.url_name == "photohraphy" %}activate{% endif %}"><a href='/photography/'>Photography</a></li>
models.py
from django.db import models
from django.core.urlresolvers import reverse
class Post(models.Model):
title = models.CharField(max_length=250)
slug = models.SlugField(max_length=250)
body = models.TextField()
date = models.DateTimeField()
updated = models.DateTimeField(auto_now=True)
def get_absolute_url(self):
return reverse('blog:post_detail', args=[self.slug])
def __str__(self):
return self.title
urls.py
from django.conf.urls import url, include
from django.views.generic import ListView, DetailView
from blog.models import Post
from . import views
urlpatterns = [
url(r'^$', views.list_of_post, name='list_of_post'),
url(r'^(?P<slug>[-\w]+)/$', views.post_detail, name='post_detail')
views.py
from django.shortcuts import render, get_object_or_404
from .models import Post
def list_of_post(request):
post = Post.objects.all()
template = 'blog/blog.html'
context = {'post': post}
return render(request, template, context)
def post_detail(request, slug):
post = get_object_or_404(Post, slug=slug)
template = 'blog/post.html'
context = {'post': post}
return render(request, template, context)
我知道,我必須添加一些神社邏輯在李類,但我不知道如何正確設置它。我想這與get_absolute_url有關。有人可以建議一種簡單而正確的方法嗎?
謝謝你這麼多
請更正'urls.py',並添加'viewsy.py'如果你能:) – opalczynski
的urls.py似乎正常工作。我不明白我應該改正什麼。我添加了views.py。謝謝! – IoanCosmin
我可以看到,urls.py實際上是models.py - 可能你只是複製了兩次... – opalczynski