Python Django assertTemplateUsed()引发Jinja模板异常
当我尝试运行此测试时:Python Django assertTemplateUsed()引发Jinja模板异常,python,django,testing,jinja2,assert,Python,Django,Testing,Jinja2,Assert,当我尝试运行此测试时: from django.test import TestCase from django.core.urlresolvers import reverse from django.test import Client class StatisticTest(TestCase): def setUp(self): self.client = Client() def test_schedule_view(self): ur
from django.test import TestCase
from django.core.urlresolvers import reverse
from django.test import Client
class StatisticTest(TestCase):
def setUp(self):
self.client = Client()
def test_schedule_view(self):
url = reverse('schedule')
response = self.client.get(url)
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, 'schedule.html')
我得到断言错误:没有用于呈现响应的模板
我的观点是:
class Schedule(View):
def get(self, request):
games = add_team_info(query.get_current_schedule())
if games is not []:
available_schedules = generate_schedule_list(games[0]["season_type"], games[0]["week"])
is_available = True
else:
available_schedules = []
is_available = False
return render_to_response("schedule.html",
{"games": games, "available_schedules": available_schedules, "is_available": is_available})
和url.py:
url(r'^schedule/$', views.Schedule.as_view(), name='schedule'),
您的问题是,
assertTemplateUsed
仅适用于Django模板,而不适用于Jinja模板
关于这个问题有一个公开的问题。模板在您的项目目录中的什么位置?在文件夹“templates”中。我在setting.py(TEMPLATES=[{“BACKEND”:“django_jinja.BACKEND.Jinja2”,'DIRS':[os.path.join(BASE_DIR,'TEMPLATES'),])中编写它您需要更改模板目录有什么原因吗?您应该可以在应用程序中创建一个模板目录,以便Django查找。您的断言错误与Django TDD手册中的错误非常相似:这表示Django找不到模板。如果我在应用程序中创建了模板目录,请移动我的temp延迟到此目录,并将其添加到settings.py中,但我收到相同的错误。不支持此操作。有关详细信息,请参阅讨论。是的,你是对的。我尝试打印响应。模板,然后打印空列表。谢谢