[英]How do I modify the url that generate by submit
我正在使用 python 3.6 和 django 3.0X
我遇到的问题是:
我想要的流程是当用户 select 一个品牌并提交时。 The url path will generate as http://127.0.0.1:8000/show/car:Ford and link to url.py to pass to show.html
然而,当提交时,url 路径生成为http://127.0.0.1:8000/show?car=Ford
如何获得符合 url.py 的正确 url 路径。 这就是为什么有一个'? 和 url 路径中的“=”?
或者如何修改 url.py 以满足 search.html 生成的 url 路径?
以下是我的代码:
搜索.html
<form name='my form' action='/show' method='GET'>
<label for='brand'> Select a brand </label>
<select name='car'>
{% for m in maker %}
<option value= '{{ m }}'> {{ m }} </option>
{% endfor %}
</select><br>
<input type='submit' value='Go' />
显示.html
Model:<br>
{% for m in model %}
{{ m }}
{% endfor %}
<br>
url.py
urlpatterns = [
path('admin/', admin.site.urls),
path('', views.index),
path('index/', views.index),
path('welcome/', views.welcome),
path('django_plotly_dash/', include('django_plotly_dash.urls')),
path('search/', views.search),
path('index/buttons.html', views.buttons),
path('show/car:<str:brand>', views.show, name='show-url')
]
视图.py
def search(request):
car = models.Cars.objects.all()
df_car = read_frame(car)
maker = list(df_car['make'].str.capitalize().unique())
#maker = models.Cars.objects.values('make').distinct()
return render(request, 'search.html', locals())
def show(request, brand):
car = models.Cars.objects.filter(make=brand)
df_car = read_frame(car)
model = df_car.model.unique()
return render(request, 'show.html', locals())
不,您不能更改 URL 的工作方式。 问号将常规的 URL 和查询分开 - 这是传递给 URL 的附加信息。 如果您强制更改它,URL 将无法正确加载,而且这样做没有任何意义。
如果您想知道path('whatever/<str:name>, ...)
之类的内容是否可以以带问号的格式工作,它会的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.