python - Django 404:“找不到与查询匹配的对象实例”
问题描述
尽管 url 参数是准确的(据我所知),Django 在尝试访问特定详细信息视图时会引发 404 错误。
我正在尝试为我的项目中的特定汽车实例创建详细视图。我刚刚创建了一个 slug,它将每辆车的唯一 UUID 传递到 url,但 Django 引发了 404 错误。
找不到具体的实例,但是url准确,url准确匹配id。另外,我从 ListView 中单击,效果很好。
来自对象管理页面的 ID 确认。请注意,它与上面的 url 匹配。
模型.py
class CarInstance(models.Model):
....
id = models.UUIDField(primary_key=True, default=uuid.uuid4,
help_text="Unique ID for this car")
...
class Meta:
ordering = ['date_added']
def __str__(self):
return f'{self.manufacturer} {self.car_model}'
def get_absolute_url(self):
return reverse('showroom:car-detail', args=[str(self.pk)])
网址.py
urlpatterns = [
...
path('car/<slug:car_detail>/', views.CarDetailView.as_view(), name='car-detail')
]
视图.py
class CarDetailView(generic.DetailView):
model = CarInstance
template_name = 'car_detail'
slug_field = 'car_model'
slug_url_kwarg = 'car_detail'
def get_queryset(self):
return CarInstance.objects.all()
解决方案
你slug_field
的不是car_model
,而是id
。您正在尝试使用错误的东西来查找模型。
我通过将其更改为此来运行您的代码。关于必须做出一些假设的正常警告适用,所以请提出您需要的任何问题。
class CarDetailView(DetailView):
model = CarInstance
template_name = 'car_detail'
slug_field = 'id'
slug_url_kwarg = 'car_detail'
def get_queryset(self):
return CarInstance.objects.all()
推荐阅读
- vb.net - ExtensionMethod 不是类的成员
- ios - 在哪里设置 tableView 数据源和委托
- reactjs - 从 API 性能反应动态形式
- ios - iOS 模拟器无法连接到 localhost
- apache-spark - 为什么相同的 spark 程序在 spark-shell 上运行良好但失败并以退出状态 1 结束
- python - 为什么我收到错误 TypeError:“名称”类型的参数不可迭代?
- python - 舍入差异 - float64 与 float32
- html - 如何调整和移动我的图像前端开发
- javascript - 根据对象的值更新 MongoDB 集合
- python - 初始化 numpy 数组或具有特定形状的数组