Django and get_absolute_url

I have a simple β€œpost” model that represents an entry for my blog:

class Post(models.Model): title = models.CharField('title', max_length=200) slug = models.SlugField('slug', unique_for_date='creation_time') creation_time = models.DateTimeField('creation time', auto_now_add=True) content = models.TextField('content') @permalink def get_absolute_url(self): return ('devblog_post_url', (), { 'year': self.creation_time.year, 'month': self.creation_time.month, 'day': self.creation_time.day, 'slug': self.slug}) 

In my blog index, I want to break up these posts in this way:

 def index_view(request): published_posts = Post.objects.all() paginator = Paginator(published_posts, 10) try: page = int(request.GET.get('page', '1')) except ValueError: page = 1 try: post_list = paginator.page(page) except (EmptyPage, InvalidPage): post_list = paginator.page(paginator.num_pages) return render_to_response('devblog_index.html', {"post_list": post_list}) 

And now the problem is, I get empty URLs as soon as I call the get_absolute_url method for the message with the devblog_index.html template:

 {% for post in post_list.object_list %} <a href="/{{ post.get_absolute_url }}/">{{ post.title }}</a><br /> {% endfor %} 

EDIT:

Here is my urls.py for my application:

from django.conf.urls.defaults import *

 urlpatterns = patterns('', url(r'^$', view='devblog.views.index_view', name='devblog_index' ), url(r'^(?P<year>\d{4})/(?P<month>\w{1,2)/(?P<day>\d{1,2})/(?P<slug>[-\w]+)/$', view='devblog.views.post_view', name='devblog_post_url' ) ) 

in the main urls.py, I just turn it on as (r'^blog/', include('devblog.urls'))

Where could a problem arise for this empty url?

Hello

+4
source share
1 answer

Change (?P<month>\w{1,2) to (?P<month>\d{1,2}) .

+5
source

Source: https://habr.com/ru/post/1336567/


All Articles