我潜入Django制作博客.问题是在渲染视图后,页面上只有文本内容没有任何CSS样式.其他类型的页面正确呈现.
这是我的设置:
mysite的/博客/ views.py
from django.shortcuts import render_to_response, get_object_or_404
from blog.models import Post,Cat
def view_cat(request, slug):
cat = get_object_or_404(Cat, slug=slug)
return render_to_response('cats.html', {
'cat': cat,
'posts': Post.objects.filter(cat=cat)[:5]
})
Run Code Online (Sandbox Code Playgroud)
mysite的/博客/ urls.py
from django.conf.urls.defaults import *
from django.views.generic import DetailView, ListView
from blog.models import Post, Cat
urlpatterns = patterns('',
url(r'^$',
ListView.as_view(
queryset=Post.objects.order_by('-pub_date')[:10],
template_name='index.html'
)
),
url(r'^(?P<pk>\d+)/$',
DetailView.as_view(
model=Post,
template_name='detail.html'
)
),
url(r'^cat/(?P<slug>\w+)/$',
'blog.views.view_cat',
),
)
Run Code Online (Sandbox Code Playgroud)
mysite的/ urls.py
from django.conf.urls.defaults import patterns, include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'',include('blog.urls')), …Run Code Online (Sandbox Code Playgroud) 当我在slug中打开带有连字符的URL时出现一个奇怪的错误,尽管SlugField支持连字符,如文档中所示.
所以,这是错误:
Page not found (404)
Request Method: GET
Request URL: http://127.0.0.1:8003/dumpster-rental-prices
Using the URLconf defined in dumpster.urls, Django tried these URL patterns, in this order:
^admin/
^(?P<slug>\w+)/$
The current URL, dumpster-rental-prices, didn't match any of these.
Run Code Online (Sandbox Code Playgroud)
如果我将文章的slug更改为dumpster_rental_prices - 网址127.0.0.1:8003/dumpster_rental_prices打开正常.
这是博客应用的models.py:
from django.db import models
class Post(models.Model):
title = models.CharField(max_length = 100)
body = models.TextField(max_length = 5000)
slug = models.SlugField(max_length = 100)
def __unicode__(self):
return self.title
Run Code Online (Sandbox Code Playgroud)
这是博客中的urls.py:
from django.conf.urls import patterns, include, url
from django.views.generic import DetailView, ListView
from blog.models …Run Code Online (Sandbox Code Playgroud)