中断Django中的嵌套循环视图.py带一个函数

2024-10-01 11:38:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个嵌套循环,我想打破它。搜索完这个站点之后,最佳实践似乎是将嵌套循环放入函数中,然后使用return来打破它。是否可以在视图.py不是视图的文件?设置此功能的最佳做法是什么?下面是我的视图.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})

Tags: pyform视图returnifrequestsavelink
2条回答

是的。在views.py中有不是视图的函数是很好的(我一直这样做)。如果该函数仅用于该模块(即通过该views.py中的视图)或仅由单个视图函数使用,则这一点尤其合适。在

如果你担心把它暴露给外界,你可以把它变成private function。另外,尽量避免给它一个名为request的参数,我倾向于在阅读代码时潜意识地解析将请求作为视图函数的函数。在

你不应该认为Django视图有任何特殊之处。它只是Python。因此,你可以在任何你喜欢的函数中使用视图.py. 唯一的限制是视图本身必须接受一个请求对象并返回HttpResponse的子类。除此之外,您可以在该模块中执行您喜欢的操作,包括让视图使用函数、类或常量。在

如果您有很多实用程序函数,为了整洁起见,您可能需要考虑将它们提取到app目录中的a lib.py。但如果你只有一两个就没必要那么做。在

相关问题 更多 >