Bonjour et désoler de poser une autre question aussi vite. J'ai entendu parler du slugfield ça m'a intéressé alors j'ai voulu le faire, j'ai eu ce problème
ValueError: invalid literal for int() with base 10
Ce problème est dans la page de détail voilà le code utilisé.
models.py
url.py
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 article slug = models.SlugField(max_length=100, unique=True) def get_absolute_url(self): return reverse("article:detail", kwargs={"slug":self.slug}) def create_slug(instance,new_slug=None): slug=slugify(instance.name) if new_slug is not None: slug=new_slug qs=Article.objects.filter(slug=slug).order_by("-id") exists=qs.exists() if exists: new_slug="%s-%s" %(slug,qs.first().id) return create_slug(instance,new_slug=new_slug) return slug def pre_save_article_receive(sender, instance,*args,**kwargs): if not instance.slug: instance.slug= create_slug(instance) pre_save.connect(pre_save_article_receive, sender=Article)
Puis j'ai changé tous les article_id ou article.id en article_slug ou article.slug
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 url(r'^((?P<article_slug>[\w-]+)//$', views.detail, name='detail')
Partager