问题描述
我想捕获视图的url参数。该怎么办?
views.py
def new_search(request,linkadd,text):
serch = request.GET['linkadd']
link = request.GET['text']
html
{% for post in product_names %}
<a id="link" href="{% url 'new_search' linkadd=post.1 text=post.0 %}" value="{{ post.0 }}">{{ post.0 }}</p>
{% endfor %}
urls.py
urlpatterns = [
url(r'^new_search(?P<linkadd>)/(?P<text>)',views.new_search,name='new_search'),]
我想从网址“ 120.0.0.0:8000/1232-23232-32-2323sdsjdhjas/redmi”中获取链接和文本 假定:1232-23232-32-2323sdsjdhjas作为链接,redmi作为文本
但是我收到这样的错误,请建议我该怎么做 MultiValueDictKeyError在/new_search/realme-xt-pearl-blue-64-gb/p/itm731360fdbd273?pid=MOBFJYBE9FHXFEFJ&lid=LSTMOBFJYBE9FHXFEFJNVQVIV&marketplace=FLIPKART&srno=s_1_1&otracker=search&fm=organic&iid=a64429b9-99a5-405b-8edb-9d94934fb991.MOBFJYBE9FHXFEFJ.SEARCH&ssid=iprr3ut7io0000001598430215812&qH = 23f6a0071022557e / Realme XT(珍珠蓝色,64 GB) 请帮助我。。谢谢!!
解决方法
我建议这样做:
views.py
def new_search(request,linkadd,text):
linkadd = request.GET['linkadd'] # another choice is linkadd = request.GET.getlist('linkadd')
text = request.GET['text'] # another choice is text = request.GET.getlist('text')
context ={
'linkadd':linkadd,'text':text
}
return render(request,"my_template.html",context)
my_template.html
<a id="link" href="{% url 'my_app:new_search' linkadd=linkadd text=text %}" value="{{linkadd}}">{{text}}</a>
在这里我们认为app_name是my_app
。请尝试这个。