gpt4 book ai didi

python - 我应该如何使用独特的 slug 测试 Django View

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

我尝试将 tests.py 写入我的 View 。

我对编写一个好的测试以使用 slug 查看有疑问。

views.py:

def post_detail(request, slug):
post = Post.objects.get(slug=slug)
context = {'post': post}
template = 'post/post_detail.html'
return render(request, template, context)

Url 看起来像:post/slug_name,而 slug 对于每个帖子都是唯一的。

我尝试:

测试.py

class PostDetailTestCase(TestCase):
def test_post_detail_(self):
test = Post(title='poost', description="posting", category="letstest", slug='django')
response = self.client.get(reverse('board_detail', args=(self.slug,)))
self.assertEqual(response.status_code, 200)

运行测试错误:

    response = self.client.get(reverse('post_detail', args=(self.slug,
AttributeError: 'PostDetailTestCase' object has no attribute 'slug'

我应该如何修复它?提前致谢。

最佳答案

在 tests.py 中,self 当前引用类 PostDetailTestCase 并且该类没有 slug。您几乎已经在数据库中创建了一个 django 可以访问的帖子。

然而,您需要做的是使用以下内容。您需要按以下方式使用 objects.create 方法。

test = Post.objects.create(
title='poost',
description="posting",
category="letstest",
slug='django'
)

如果您随后将 self 替换为 test ,事情应该会成功。

response = self.client.get(reverse('board_detail', args=(test.slug,)))

关于python - 我应该如何使用独特的 slug 测试 Django View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46131478/

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