2017-09-17 2 views
1

Comment afficher l'année DateTimeField dans les URLs qui utilisent DetailView?Django - DateTimeField dans DetailView

Voici mon code:

models.py

publish = models.DateTimeField(default=timezone.now) 

views.py

class AktualnosciDetail(DetailView): 
    template_name = 'aktualnosci/detail.html' 
    model = Post 

urls.py

url(r'(?P<slug>[-\w]+)$', AktualnosciDetail.as_view(), name='aktualnosci-detail'), 

Maintenant, mon URL ressemble à ça: 127.0.0.1/this-is-just-test, mais je veux mon URL pour ressembler à ceci: 127.0.0.1/2017/09/17/this-is-just-test. Comment puis-je le faire ?

Merci pour votre aide!

+0

Le détailView hérite de SingleObjectMixin. Je vous recommande de lire la documentation ici: https://docs.djangoproject.com/fr/1.11/ref/class-based-views/mixins-single-object/#singleobjectmixin Même si cela ne résout pas directement votre problème, ça t'aidera avec ça. –

+0

Pourquoi voulez-vous avoir la date dans l'url? Utiliserez-vous la date pour identifier l'article? Ou l'article est-il identifié uniquement par le champ de limace? –

Répondre

2

Vous pouvez transmettre des arguments pour year, month et day aussi avec slug

url(r'(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/(?P<day>[0-9]{2})/(?P<slug>[-\w]+)$', AktualnosciDetail.as_view(), name='aktualnosci-detail'), 

En html

<a href="{% url 'aktualnosci-detail' year=post.publish.year month=post.publish.month day=post.publish.day slug=post.slug %}"