gpt4 book ai didi

django - 使用 Django.test.client 检查模板变量

转载 作者:行者123 更新时间:2023-11-28 20:09:59 25 4
gpt4 key购买 nike

我有一个 View ,我正在尝试使用 Client 对象进行测试。我可以获取注入(inject)到 View 的 render_to_response 中的变量吗?

示例 View :

def myView(request):

if request.method == "POST":
# do the search
return render_to_response('search.html',{'results':results},context_instance=RequestContext(request))
else:
return render_to_response('search.html',context_instance=RequestContext(request))

测试:

c = Client()

response = c.post('/school/search/', {'keyword':'beagles'})
# how do I get to the 'results'


编辑:

来自 Docs ,我很确定我应该使用:

response.context["results"]

...但是 response.contextresponse.template 都返回 None

最佳答案

好吧,找到了我自己的答案。当你自己运行测试时,这些东西不会被填充,但如果你用 manage.py test 运行它,它就会被填充。如果你想获得一个独立的测试工作,将其添加到脚本的顶部:

from django.test.utils import setup_test_environment
setup_test_environment()

这是我脚本顶部的整个测试环境设置(供引用):

#!/usr/bin/env python

### Start ENV Setup
import os, sys
sys.path.append('/Users/me/Documents/Web/django_projects/myproject')

from django.core.management import setup_environ

import settings
print "Setting environment to:", setup_environ(settings), "\n"

from django.test.utils import setup_test_environment
setup_test_environment()
### Finish ENV Setup

#-------------------

# Start the Fun! >>
from myproject.myapp.models import mymodel

关于django - 使用 Django.test.client 检查模板变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2936827/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com