/ / Django - 文字列をSlugifyしてURLでのみ使用する - django

Django - 文字列をSlugifyしてURLでのみ使用する - django

私が持っています get_aboslute_url 私のモデルではDjangoで機能します。ここに私のコードです:

def get_absolute_url(self):
return reverse("detail", args=[self.author.full_name, self.title])

ここに私のコードはあります detail 関数:

def detail(request, author, title):
book = get_object_or_404(Book,
author__full_name=author,
title=title)

context = {"book": book}

return render(request, "booksreview/books_list.html", context)

そして、ここに私の問題があります。私は使いたい author そして title 私のURLのスラッグとして。したがって、URLはこのように見えるはずです author-name/title-of-book。どうしたらいいですか?

助けを前にありがとう。

回答:

回答№1は1

あなたはこのようにすることができます:

class Book(models.Model):
author = ......
slug = models.SlugField(max_length=150)
title = models.CharField(max_length=100)

def save(self):
if not self.id:
self.slug = slugify(self.author__full_name + self.title)

def get_absolute_url(self):
return reverse("detail", kwargs={"slug": self.slug})