新的 url id 被附加在上一个请求的 url 之后
The new url id is getting appended after the previous request's url
我在 Django 中使用 html 形式发出获取请求:
crud.html
<form action="{% url 'crudId' id %}" method="get">
<div class="col">
<div class="form-group" style="width: 20%;margin-top: 5px">
<label for="name">Id</label>
<input type="number" name="id" value="{% if data %}{{ id }}{% endif %}">
</div>
<input type="submit" value="OK" style="width: 30%; margin-left: 40%">
...
我对此的看法:
class CrudPageView(View):
def get(self, request, id=1):
# get the id from the page
oid = id
...
# some data and operation
...
return render(request, 'crud.html', {'data': data, 'id': oid})
并在 urls.py 中为:
path('crud/', CrudPageView.as_view(), name='crud'),
path('crud/id=<int:id>', CrudPageView.as_view(), name='crudId')
...
所以 http://localhost:8000/crud/ 确实按预期工作并显示了数据为 id = 1 的页面;
当我输入任何 id 时,它也会按预期工作并显示该 id 的数据,但是 url 的形式是 http://localhost:8000/crud/id=1?id=5
并且在另一个输入之后它将是 http://localhost:8000/crud/id=5?id=12
我做错了什么?
尝试这样的事情:
def index(request, id) -> HttpResponse:
# some data
return render(request, 'websites/index.html', context={'data': data, 'id': id})
def get(request) -> HttpResponse:
id_number = request.GET.get('number')
# some data
return redirect(index, id=id)
我在 Django 中使用 html 形式发出获取请求:
crud.html
<form action="{% url 'crudId' id %}" method="get">
<div class="col">
<div class="form-group" style="width: 20%;margin-top: 5px">
<label for="name">Id</label>
<input type="number" name="id" value="{% if data %}{{ id }}{% endif %}">
</div>
<input type="submit" value="OK" style="width: 30%; margin-left: 40%">
...
我对此的看法:
class CrudPageView(View):
def get(self, request, id=1):
# get the id from the page
oid = id
...
# some data and operation
...
return render(request, 'crud.html', {'data': data, 'id': oid})
并在 urls.py 中为:
path('crud/', CrudPageView.as_view(), name='crud'),
path('crud/id=<int:id>', CrudPageView.as_view(), name='crudId')
...
所以 http://localhost:8000/crud/ 确实按预期工作并显示了数据为 id = 1 的页面;
当我输入任何 id 时,它也会按预期工作并显示该 id 的数据,但是 url 的形式是 http://localhost:8000/crud/id=1?id=5
并且在另一个输入之后它将是 http://localhost:8000/crud/id=5?id=12
我做错了什么?
尝试这样的事情:
def index(request, id) -> HttpResponse:
# some data
return render(request, 'websites/index.html', context={'data': data, 'id': id})
def get(request) -> HttpResponse:
id_number = request.GET.get('number')
# some data
return redirect(index, id=id)