我一直在为我的 Django 应用编写测试,并一直在努力解决这个问题。我有一个视图,使用 django.contrib.messages
发送不同情况下的消息。该视图大致如下。
from django.contrib import messages
from django.shortcuts import redirect
import custom_messages
def some_view(request):
""" This is a sample view for testing purposes.
"""
some_condition = models.SomeModel.objects.get_or_none(
condition=some_condition)
if some_condition:
messages.success(request, custom_message.SUCCESS)
else:
messages.error(request, custom_message.ERROR)
redirect(some_other_view)
现在,在测试这个视图时,client.get
的响应不包含包含messages
的context
字典,因为这个视图使用了重定向。对于渲染模板的视图,我们可以使用messages = response.context.get('messages')
来访问消息列表。那么,我们如何访问重定向视图中的messages
呢?
redirect(reverse(some_other_view) + '?user_added=true')
- Aamir Rind