【问题标题】:Django 1.9 unittest error for messages but i dont see the error for 1.10.4 and 1.8消息的 Django 1.9 单元测试错误,但我没有看到 1.10.4 和 1.8 的错误
【发布时间】:2016-12-08 06:35:23
【问题描述】:

测试失败并在 Django 1.9 env 中出现错误,但测试在 1.10.4 和 1.8 中运行良好。有人可以在这里发光吗!

这是错误

添加消息 raise MessageFailure('不安装就不能添加消息' MessageFailure:不安装 django.contrib.messages.middleware.MessageMiddleware 就无法添加消息

检查https://travis-ci.org/invaana/Hydronium/builds/182190626 是否有完整的错误

views.py

def contact(request):
    if request.method == "POST":
        form = ContactForm(request.POST)
        if form.is_valid():
            form.save()
            messages.success(request, 'Operation Successful! This is demo. Im not sending any messages')
        else:
            form.errors
            messages.error(request, 'Message not sent, Please fix the errors!.' )
    else:
        form = ContactForm()
    return render(request, 'pages/contact.html', {'form': form})

tests.py

def test_contactform_valid(self):
    res = self.client.post(reverse('contact'), {'name':'Ravi','email':'rrmerugu@gmail.com', 'text': 'im good' })
    self.assertIn('Operation Successful', res.content)

def test_contactform_invalid(self):
    res = self.client.post(reverse('contact'), {'name':'Ravi','email':'rrmerugu@gmail.com', 'text': '' })
    self.assertIn('Message not sent', res.content)

【问题讨论】:

标签: django unit-testing django-1.9


【解决方案1】:

显然,

MIDDLEWARE_CLASSES 用于 1.9、1.8

MIDDLEWARE 在 1.10.4 中使用。

为了使中间件兼容两者,我在settings.py 中使用了以下代码

MIDDLEWARE = MIDDLEWARE_CLASSES = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

【讨论】:

    猜你喜欢
    • 2015-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-19
    • 2015-07-05
    • 1970-01-01
    • 2017-08-19
    相关资源
    最近更新 更多