【发布时间】:2019-10-31 17:32:43
【问题描述】:
我正在将一个 Flask 项目转换为 Django 项目。 我有一个 view1 函数,它接受用户输入并将其传递给返回两个变量的 function1。变量 x 用于查询字符串并传递给 view2。但是,我还需要将变量 y 传递给 view2 以进行进一步的操作。 我在 Flask 应用程序中使用了表达式“global y”,但这在 Django 中不起作用。 任何想法,
def function1(input):
#does something
return x,y
def view1(request):
form = SomeForm()
context={'form': form}
if request.method == "POST":
form = SomeForm(request.POST)
if form.is_valid():
input = form.cleaned_data['data_from_user']
# global y --> works only in Flask
x,y = function1(input)
return redirect("view2", x) # goes to path('<str:x>/', views.my_app, name='view2')
return render(request, "my_app/view1.html", context)
def view2(request, x):
record = SomeTable.objects.filter(y=y).first()
context = {'record': record}
return render(request, "my_app/view2.html", context)
【问题讨论】:
-
我的意思是为什么不将它作为参数添加并传递它?
-
X 和 Y 代表一个名称和对应的代码。 url 必须只包含名称(我猜是美学原因)。
标签: python django django-views