我有一个我想跳出的嵌套循环。搜索该站点后,最好的做法似乎是将嵌套循环放入一个函数中,然后使用 return 来中断它。在 views.py 文件中包含不是 View 的函数是否可以接受?此功能位置的最佳做法是什么?这是我的 views.py 中的示例代码
@login_required
def save_bookmark(request):
if request.method == 'POST':
form = BookmarkSaveForm(request.POST)
if form.is_valid():
bookmark_list = Bookmark.objects.all()
for bookmark in bookmark_list:
for link in bookmark.link_set.all():
if link.url == form.cleaned_data['url']:
# Do something.
break
else:
# Do something else.
else:
form = BookmarkSaveForm()
return render_to_response('save_bookmark_form.html', {'form': form})
最佳答案
您不应该认为 Django View 有任何特殊之处。 它只是 Python。因此,您可以在 views.py 中拥有您喜欢的任何功能。唯一的限制是 View 本身必须接受请求对象并返回 HttpResponse
的子类。除此之外,您可以在该模块中做任何您喜欢的事情,包括让您的 View 使用函数、类或常量。
如果您有很多实用功能,为了整洁起见,您可能需要考虑将它们解压缩到您的应用程序目录中的 lib.py
中。但如果您只有一两个,则没有必要这样做。
关于python - 使用函数打破 Django views.py 中的嵌套循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2718890/