python - Python Django Int 的无效输入语法错误,即使它不应该是整数
问题描述
我正在使用 Python、Django 2.1 和 PostgreSQL 制作电子商务应用程序。当我单击其中一个类别以显示特定于该类别的产品时,它告诉我有数据错误。显然,在 URL 中,应该有一个整数时有一个字符串。我不明白这一点。请帮忙
我尝试了很多不同的东西,但似乎都没有。
我的网址模式:
path('products/phones/', product_views.CategoryDetailView.as_view(template_name='products/category_details/phones.html'), name='phones'),
path('products/laptops/', product_views.CategoryDetailView.as_view(template_name='products/category_details/laptops.html'), name='laptops'),
path('products/desktops/', product_views.CategoryDetailView.as_view(template_name='products/category_details/desktops.html'), name='desktops'),
path('products/keyboards/', product_views.CategoryDetailView.as_view(template_name='products/category_details/keyboards.html'), name='keyboards'),
path('products/mice-and-mouse-pads/', product_views.CategoryDetailView.as_view(template_name='products/category_details/mice.html'), name='mice'),
path('products/headsets/', product_views.CategoryDetailView.as_view(template_name='products/category_details/headsets.html'), name='headsets'),
path('products/printers-scanners-and-fax/', product_views.CategoryDetailView.as_view(template_name='products/category_details/printers.html'), name='printers'),
path('products/consoles/', product_views.CategoryDetailView.as_view(template_name='products/category_details/consoles.html'), name='consoles'),
path('products/misc/', product_views.CategoryDetailView.as_view(template_name='products/category_details/misc.html'), name='misc'),
收到的错误是:
django.db.utils.DataError: invalid input syntax for integer: "Phones"
LINE 1: ...s_product" WHERE "products_product"."category_id" = 'Phones'
我的观点
model = Category
queryset = Category.objects.all()
template_name = 'products/category_detail.html'
context_object_name = 'categories'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
# Query Sets
context['phones'] = Product.objects.filter(category='Phones')
context['laptops'] = Product.objects.filter(category='Laptops')
context['total_laptops'] = len(Product.objects.filter(category='Laptops'))
context['desktops'] = Product.objects.filter(category='Desktops')
context['total_desktops'] = len(Product.objects.filter(category='Desktops'))
context['keyboards'] = Product.objects.filter(category='Keyboards')
context['total_keyboards'] = len(Product.objects.filter(category='Keyboards'))
context['mice'] = Product.objects.filter(category='Mice and Mouse Pads')
context['total_mice'] = len(Product.objects.filter(category='Mice and Mouse Pads'))
context['printers'] = Product.objects.filter(category='Printers, Scanners, and Fax Machines')
context['total_printers'] = len(Product.objects.filter(category='Printers, Scanners, and Fax Machines'))
context['consoles'] = Product.objects.filter(category='Consoles')
context['total_consoles'] = len(Product.objects.filter(category='Consoles'))
context['miscellaneous'] = Product.objects.filter(category='Miscellaneous')
context['total_miscellaneous'] = len(Product.objects.filter(category='Miscelaneous'))
return context
解决方案
推荐阅读
- windows - 寻求帮助让 rpy2 版本 3.x 与 Windows 一起工作
- javascript - 如何以编程方式删除 npm 包?
- javascript - 如何根据Javascript中的现有日期动态地将Day添加到JSON数组中?
- javascript - 在 Bootstrap Dropdown 'option' 上使用 onClick - React hooks
- javascript - Javascript Array of Functions 失去了 This 范围
- javascript - JQuery手风琴菜单颜色在选择时保持变化
- angular - CORS 策略已阻止从源访问 XMLHttpRequest:请求的资源上不存在“Access-Control-Allow-Origin”标头
- c - 如何在c中使用sscanf从字符串中读取所有双数?
- mongodb - 为什么副本集中有奇数个成员?
- node.js - WebStorm - 调试 Jest 测试 - 断点之前的异常时间量