Django URL 越来越长
Django URL keeps being longer
我是 django 的新手,我正在研究 url 重定向。在我看来,我正在使用 HttpResponseRedirect 和渲染函数来切换视图。
问题是在视图之间切换几次后,URL 变得越来越长。这是我在 addcostumer 和 delete costumer views
之间切换后 chrome 上的 URL
http://127.0.0.1:8000/interface/addcostumer/deletecostumer/addcostumer/deletecostumer/preview/preview/addcostumer/deletecostumer/
如何让 URL 变成
http://127.0.0.1:8000/interface/addcostumer/
当我在 addcostumer 视图中并且
http://127.0.0.1:8000/interface/deletecostumer/
当我在 deletecostumer 视图中时
每当我在视图之间切换时,它们都会一个接一个地附加。
class AddCostumerView(FirstPageView):
def __init__(self):
super()
self.main_template = "addcostumer.html"
def get(self, request):
form = CostumerForm()
return render(request, template_name=self.base_template,
context={"company_list": list(database.get_companies()),
"sister_page": self.main_template,
"form": form})
@method_decorator(csrf_protect)
def post(self, request):
print("this line is running now")
form = CostumerForm(request.POST)
if request.FILES["myfile"]:
myfile = request.FILES["myfile"]
fs = FileSystemStorage()
filename = fs.save(myfile.name, myfile)
if form.is_valid():
data = form.cleaned_data
#database.add_costumer(**data)
#preview the data and preview the file
#Add for final submission
#messages.success(request, filename)
return HttpResponseRedirect("preview/") # TODO change to proper page
return HttpResponseRedirect("firstpage.html")
class DeleteCostumerView(FirstPageView):
def __int__(self):
super()
self.main_template = "deletecostumer.html"
def get(self, request):
companies = database.get_companies()
print("delete get request")
return render(request, template_name= self.base_template,
context={
"company_list": companies,
"sister_page" : "deletecostumer.html",
"form": DeleteForm(),
})
def post(self, request):
submission = request.POST
form = DeleteForm(submission)
if form.is_valid():
companyID = form.cleaned_data["company"]
database.delete_costumer(**{"companyID":companyID})
return HttpResponseRedirect("deleteconstumer.html")
return HttpResponseRedirect("deleteconstumer.html")
HttpResponseRedirect("preview/")
是一个相对路径,将始终附加到您执行此代码的路径,要么使用像 '/preview/'
这样的绝对路径,要么更好地使用 Djangos reverse 实用程序用于构建重定向的函数。
我是 django 的新手,我正在研究 url 重定向。在我看来,我正在使用 HttpResponseRedirect 和渲染函数来切换视图。
问题是在视图之间切换几次后,URL 变得越来越长。这是我在 addcostumer 和 delete costumer views
之间切换后 chrome 上的 URLhttp://127.0.0.1:8000/interface/addcostumer/deletecostumer/addcostumer/deletecostumer/preview/preview/addcostumer/deletecostumer/
如何让 URL 变成
http://127.0.0.1:8000/interface/addcostumer/
当我在 addcostumer 视图中并且
http://127.0.0.1:8000/interface/deletecostumer/
当我在 deletecostumer 视图中时
每当我在视图之间切换时,它们都会一个接一个地附加。
class AddCostumerView(FirstPageView):
def __init__(self):
super()
self.main_template = "addcostumer.html"
def get(self, request):
form = CostumerForm()
return render(request, template_name=self.base_template,
context={"company_list": list(database.get_companies()),
"sister_page": self.main_template,
"form": form})
@method_decorator(csrf_protect)
def post(self, request):
print("this line is running now")
form = CostumerForm(request.POST)
if request.FILES["myfile"]:
myfile = request.FILES["myfile"]
fs = FileSystemStorage()
filename = fs.save(myfile.name, myfile)
if form.is_valid():
data = form.cleaned_data
#database.add_costumer(**data)
#preview the data and preview the file
#Add for final submission
#messages.success(request, filename)
return HttpResponseRedirect("preview/") # TODO change to proper page
return HttpResponseRedirect("firstpage.html")
class DeleteCostumerView(FirstPageView):
def __int__(self):
super()
self.main_template = "deletecostumer.html"
def get(self, request):
companies = database.get_companies()
print("delete get request")
return render(request, template_name= self.base_template,
context={
"company_list": companies,
"sister_page" : "deletecostumer.html",
"form": DeleteForm(),
})
def post(self, request):
submission = request.POST
form = DeleteForm(submission)
if form.is_valid():
companyID = form.cleaned_data["company"]
database.delete_costumer(**{"companyID":companyID})
return HttpResponseRedirect("deleteconstumer.html")
return HttpResponseRedirect("deleteconstumer.html")
HttpResponseRedirect("preview/")
是一个相对路径,将始终附加到您执行此代码的路径,要么使用像 '/preview/'
这样的绝对路径,要么更好地使用 Djangos reverse 实用程序用于构建重定向的函数。