【发布时间】:2018-05-02 23:50:21
【问题描述】:
我有一个
class TestReportModel(TestCase):
@classmethod
def setUpClass(cls):
cls.report_id = 99
cls.factory = RequestFactory()
cls.user = User.objects.create(username="user1", password="password")
cls.report = Report.objects.create()
初始化我需要的对象
def test_report_employee_with_access(self):
request = self.factory.get('/reports/{}'.format(self.report_id))
report = self.report
report.user = request.user
request.user = self.user
response = report(request, self.report_id)
self.assertEqual(response.status_code, 403)
在查看报告中
@login_required()
def report(request, report_id):
a = Report.objects.get(id = report_id)
我可以使用 User.object.get(id = user_id) 获取我的用户。根据我的模型,用户对报告一无所知。这就是为什么我不能得到像 user.report 这样的报告。我只能创建一个像 Report.object.get(id=report_id) 这样的数据库查询,但我得到一个空查询集。我该如何解决?
【问题讨论】:
-
只是为了排除我的答案,您是否真的在您的
setUpClass方法中调用了super方法? -
不,你能解释一下吗?
-
您是否阅读了我回答中的警告,或者点击了文档的链接?在文档中,有一个如何正确覆盖
setUpClass的示例。 -
没有更多信息(例如,Minimal, Complete, and Verifiable example),我只能提供建议。