[英]django use slug not pk
我正在嘗試在我的 url 中使用 slug,我在其他網站上做得很好,但由於某種原因,我無法在網站的這個區域的 url 中使用 slug,只有主鍵才能獲得所需的結果,我在這里錯過了什么? 與我做過的其他網站的唯一區別是,slug 將用於過濾,我認為這是搞砸了。
模型:
class Desk(models.Model):
name = models.CharField(max_length=16, unique=True)
slug = models.SlugField(max_length=16, unique=True)
def __str__(self):
return self.slug
class Handover(models.Model):
desk = models.ForeignKey(
Desk,
related_name="handover",
on_delete=models.CASCADE
)
published = models.DateTimeField(auto_now_add=True)
user = models.CharField(max_length=45)
ongoing = models.CharField(max_length=1024, null=True, blank=True)
resolved = models.CharField(max_length=1024, null=True, blank=True)
planned_work = models.CharField(max_length=1024, null=True, blank=True)
heightened_awareness = models.CharField(max_length=1024, null=True, blank=True)
在下面的視圖中,出於某種原因,我不能在過濾器中使用“slug”這個詞,它只會引發錯誤。 如果我在瀏覽器的 url 中使用 PK,則當前設置有效,但不是我想要使用的 slug,(我不確定為什么這也有效,我希望這不會因為使用 ' slug' 在網址中)。
這是視圖:
class IndexView(ListView):
template_name = 'pcc_homepage/index.html'
queryset = Handover.objects.order_by('-published')
def get_queryset(self):
return Handover.objects.filter(desk=self.kwargs['desk'])
這是網址:
urlpatterns = [
path('home/<slug:slug>/', IndexView.as_view(), name='index'),
path('handover/', HandoverCreateView.as_view(), name='handover'),
]
我怎樣才能使用人類可讀的單詞而不是整數來完成這項工作。
你可以試試 Handover.objects.filter(desk__slug=self.kwargs['desk'])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.