django - 如何在views.py [Django]中传递可选参数
问题描述
网址.py:
def shopgrid(request, proname=None):
products = Product.objects.all()
categories = Categories.objects.all()
recent_products = Product.objects.order_by('-date')[0:3]
if proname != None:
products = Product.objects.filter(categorie__title=proname)
if request.method == "GET":
recent = request.GET.get('val')
amount = request.GET.get('amount')
print('This is amount--->',amount)
if recent == 'name':
products = Product.objects.order_by('name')
if recent == 'price':
products = Product.objects.order_by('-price')
if 'val' in request.GET:
check_values = request.GET.getlist('val')
first_element=check_values[0]
last_element=check_values[-1]
fe = first_element[0:4]
le = last_element[-4:]
min_price = int(fe)
max_price = int(le)
products = Product.objects.filter(price__range=(min_price, max_price))
print(products)
context={'p':products, 'rp':recent_products, 'cat':categories}
return render(request, 'cart/shop-grid.html', context)
网址.py:
urlpatterns = [
path('', views.index, name="index"),
path('shopgrid/', views.shopgrid, name="shopgrids"),
path('shopgrid/<str:proname>/', views.shopgrid, name="shopgrid"),
path('cat_sort/<str:proname>/', views.cat_sort, name="cat_sort"),
]
错误:
**Reverse for 'shopgrid' with no arguments not found. 1 pattern(s) tried: ['shopgrid/(?P<proname>[^/]+)/$']**
<form id="priceform" action="**{% url 'shopgrid' %}**" method="GET">
{% csrf_token %}
<input type="text" id="amount" name="amount" placeholder="Add Your Price">
</form>
def shopgrid(request, proname=None ): proname 是一个可选参数。问题是如何在 Jinja 模板中编写可选参数。我已经写了一个 proname=None 但我只面临 HTML 错误
解决方案
不带参数的视图名称是,所以 url 应该是:shopgrids
<form id="priceform" action="{% url 'shopgrids' %}" method="GET">
{% csrf_token %}
<input type="text" id="amount" name="amount" placeholder="Add Your Price">
</form>
推荐阅读
- android - 如何解决这个问题?-“'C:\Users\dmgop\AppData\Local\Android\Sdk\build-tools\27.0.3\aapt2.exe' 上缺少 aapt2”
- mongodb - Docker Meteor 开发设置仍连接到本地数据库
- python - ModuleNotFoundError:没有名为“sentiment_mod”的模块
- python - 合并缺少键的字典以创建组合字典
- python - 使除以零等于列表中的零
- hive - 用 Hive 中的其他值替换列值
- python - Django Ajax - POST 请求成功,数据未保存在数据库中
- python - 使用 numpy where:对于黑色单元格,将新值放入列中
- ruby-on-rails - 多个用户在 Ruby on Rails 中执行一项任务
- ruby-on-rails - 带有服务器呈现的 html 表单的 phonegap 产生空引用者错误