我收到錯誤,但我不明白如何解決它:(MainPage.get() got an unexpected keyword argument 'slug')
這是我的模型:
class Book(models.Model):
title = models.CharField(max_length=256)
price = models.IntegerField()
category = models.ForeignKey('Category', on_delete=models.PROTECT)
created_date = models.DateField(auto_now_add=True)
description = models.TextField(blank=True, null=True)
count = models.IntegerField(default=0)
author = models.ForeignKey('Author', on_delete=models.PROTECT)
class Category(models.Model):
name = models.CharField(max_length=256)
slug = models.SlugField(blank=True, unique=True, allow_unicode=True)
created_date = models.DateField(auto_now_add=True)
這是我的看法:
class MainPage(View):
def get(self, request):
books = models.Book.objects.all()
return render(request, 'core/index.html', {'books': books})
class CategoryPage(View):
def get(self, request):
categories = models.Category.objects.all()
return render(request, 'core/category.html', {'categories': categories})
這是我的網址:
urlpatterns = [
path('', views.MainPage.as_view(), name='MainPage'),
path('category/', views.CategoryPage.as_view(), name='Category'),
path('category/<slug:slug>/', views.MainPage.as_view(), name='BookList')]
uj5u.com熱心網友回復:
當您使用時'category/<slug:slug>/',django 會傳遞slug給您的視圖。
因此,要么**kwargs在您的視圖中使用,要么在您的視圖中宣告slug為引數:
class MainPage(View):
def get(self, request, *args, **kwargs):
# get slug from kwargs and use it as you want
books = models.Book.objects.all()
return render(request, 'core/index.html', {'books': books})
或者:
class MainPage(View):
def get(self, request, slug):
# Use slug as you want
books = models.Book.objects.all()
return render(request, 'core/index.html', {'books': books})
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/517821.html
標籤:django网址django-viewsdjango-模板
