【发布时间】:2017-07-06 09:16:46
【问题描述】:
在我的 view.py 中,我有一个 def index(request): 和 def other(request):
在 def other(request): 我想运行完全相同的代码,例如 def index(request): if request.method == 'POST': and else do something different
将代码从 def index(request): 复制到 def other(request): after if request.method == 'POST': 有效,但重复代码不好。如果我在 if 语句之后执行 index(request),则 def other(request): return nothing.
实现这一目标的正确方法是什么?
@login_required
def other(request):
if request.method == 'POST':
# do the same like in def index(request):
index(request)
else:
# do somthing different
pass
return render(request, 'search/index.html')
@login_required
def index(request):
if request.method == 'POST':
form = SearchForm(request.POST)
if form.is_valid():
# do something
pass
return render(request, 'search/index.html')
【问题讨论】:
-
你能给我们看看代码吗?