【发布时间】:2021-05-25 16:58:37
【问题描述】:
我真的需要一些帮助,拜托。
我认为我的代码是正确的,但是当我调用 python manage-py runserver 时出现错误。
• 模型.py
from django.db import models
from django.urls import reverse
class Product(models.Model):
title = models.CharField(max_length=255)
image = models.URLField(max_length=255)
price = models.DecimalField(max_digits=12, decimal_places=2)
product_id = models.SlugField(max_length=255, unique=True)
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse("api:detail", kwargs={"product_id": self.product_id})
views.py
from django.views.generic import ListView, DetailView
from .models import Product
class ProductListView(ListView):
model = Product
class ProductDetailView(DetailView):
model = Product
urls.py
from django.urls import path
from .views import ProductListView, ProductDetailView
app_name = "api"
urlpatterns = [
path('', ProductListView.as_view(), name='list'),
path('<slug:product_id>/', ProductDetailView.as_view(), name='detail'),
]
错误日志
在 get_object 中引发 AttributeError( AttributeError: Generic detail 查看 ProductDetailView 必须使用对象 pk 或 在 URLconf 中添加 slug。
【问题讨论】:
标签: python django django-models django-urls