这个问题在这里已有答案:
我正在建立一个购物网站,我想制作一个有助于分离男女服装的网址。
我想做的事
当你输入.../men/
时,它应该显示所有性别与男性匹配且.../women/
相同的产品
我的网址看起来像
urlpatterns = [
url(r'^$', views.home, name='home'),
url(r'^upload/$', views.upload, name='uploadproduct'),
url(r'^(?P<gender>\w+)/$', views.sex),
# url(r'^(?P<gender>\w+)', views.sex,),
]
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
但无论我在网址中传递性别的字母数字参数,它都无法识别它。它展示了男士产品。例如,即使我去.../nfjwiene/
它会显示所有男人的产品。如果我去.../women/
也会发生同样的事情。
我的观点看起来:
def sex(request, gender=''):
if gender == 'men' or 'Men':
u='M'
elif gender == 'women' or 'Women':
u='F'
else:
u='err'
result = Product.objects.filter(sex=u)
return render(request, 'sex.html', {'item': result}, gender)
似乎问题出现在你的if语句中;
if gender == 'men' or 'Men':
始终返回True,它检查性别是否首先等于'men',如果失败,则转到第二个条件,即'Men',它将解析为True。您应该编写if语句,如下所示:
if gender == 'men' or gender == 'Men':
同样适用于女性检查。