2012-08-04 1 views
1

я получаю: Используя URLconf, определенный в blog.urls, Django пробовал эти шаблоны URL, в следующем порядке: ^^$ ^ ^/(P [A-Za-Z0-9] +) [name = 'view_blog_post'] Текущий URL-адрес, duzeltme-yazisi /, не соответствует ни одному из них.Джанго ошибка slugfield URL

этот погрешность. здесь некоторые выходы:

urls.py (в папке проекта):

from django.conf.urls import patterns, include, url 

urlpatterns = patterns('', 
    url(r'^', include('userside.urls')), 

) 

urls.py (в папке приложения):

from django.conf.urls import patterns, include, url 

urlpatterns = patterns('userside.views', 
    url(r'^$','index'), 
    url(r'^/(?P<postslug>[^\.]+)','userside.views.singlePost',name='view_blog_post'), 
) 

views.py:

from userside.models import Post 
from django.shortcuts import render_to_response 
from django.template import RequestContext 


def index(request): 
    post_list = Post.objects.all() 
    return render_to_response('userside/index.html', 
           {'post_list':post_list}, 
        context_instance = RequestContext(request)) 

def singlePost(request,postslug): 
    post = Post.objects.get(slug=postslug) 
    context = {'post':post} 
    return render_to_response('userside/detail.html',context,context_instance = RequestContext(request)) 

.остров:

from django.db import models 
#from django.utils import timezone 
from django.db.models import permalink 

class Post(models.Model): 
    title = models.CharField(max_length = 100) 
# date = models.DateTimeField(auto_now_add=True) 
    text = models.TextField() 
    slug = models.SlugField(unique=True) 

    def __unicode__(self): 
    return self.title 

    @permalink 
    def get_absolute_url(self): 
    return ('view_blog_post',None, {'postslug':self.slug}) 

и вот мой index.html файл шаблона:

<html> 
<head> 
     <title>Welcome</title> 
<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}css/index.css" /> 
</head> 
<body> 
<h1>Hello Mars</h1> 
<br> 
{% if post_list %} 
    {% for x in post_list %} 
     <p><a href="/{{ x.slug }}/">{{ x.title }}</a></p> 
     <p>{{ x.text }}</p> 
     <hr> 
    {% endfor %} 
{% else %} 
    <div class="center">No records! (but looks like code works correctly!)</div> 
{% endif %} 
</body> 
</html> 

Джанго версия: 1,4

Что здесь не так? :/

спасибо

+0

которые URL вы пытаетесь соответствовать? – thebjorn

+0

Я создаю запись из оболочки, название которой «duzeltme yazisi». это на моем основном языке. и на индексной странице я перечислил все записи. Я добавляю ссылку на заголовок сообщений в файле шаблона. когда я нажал на заголовок; я должен видеть сообщение специально на другой странице, у которой есть URL-адрес slug из заголовка сообщения. – alix

+0

Я добавил файл index.html. – alix

ответ

1

проект - urls.py

url(r'^$', include('userside.urls')), 

userside - urls.py

url(r'^(?P<postslug>[-\w]+)/$', 
    # ../gis-grundlagen/ 
    view = 'singlePost', 
    name = 'userside-single-post', 
), 

userside - views.py

def singlePost(request, postslug): 
    post = get_object_or_404(Post, slug=postslug) 
    context = {'post':post} 
    return render_to_response('userside/detail.html',context,context_instance = RequestContext(request)) 
+0

Большое вам спасибо! оно работает! так это о просто get_object_or_404? – alix

+0

Я проверил. речь идет о 'userside.views.singlePost'; он должен смотреть = '...'. еще раз спасибо. – alix

+1

get_object_or_404 - это просто ярлык внутри django, поэтому вам не нужно проверять, доступен ли пул - заданный из URL-адреса. Вы знаете ... scriptkiddies ... пытается сорвать сайт ... пробовать некоторые URL-адреса;) – Thomas

0

Там не должно быть $ при использовании включают, попробуйте:

url(r'^', include('userside.urls')), 

обычно вы бы вложенной указано, например,

url(r'^userside/', include('userside.urls')), 

Начальная слэш (/), вероятно, тоже ошибка:

url(r'^/(?P<postslug>[^\.]+).html','userside.views.singlePost',name='view_blog_post'), 

должны, вероятно, будет

url(r'^(?P<postslug>[^\.]+).html','userside.views.singlePost',name='view_blog_post'), 
+0

Обновите свой вопрос, вместо того чтобы пытаться отправить код в поле комментария (он просто искажает форматирование на части :-) – thebjorn

+0

извините, я новичок здесь :) обновлено .. – alix

+0

после того, как я удалил косую черту, он показывает: «no moduled names userside» – alix