Django:POST可以偶然发生吗?

时间:2014-07-29 04:30:53

标签: django post get views

在Django中,我检查需要登录的页面的登录状态和权限。但是,我现在只在get内部视图的情况下检查它们,因为可以尝试访问您不允许访问的页面。

例如,假设我只有登录用户的部分,例如/user_account/。如果有人手动输入网址,我当然要检查他是否已登录。我会在get部分内执行此检查。

但是如果在user_account上还有一个表单,那么它将落入视图的post部分。我还需要检查用户是否已登录?

也就是说,当我在第一时间阻止你get时,是否有可能以某种方式意外地发布到该页面?

希望这个问题很明确。

1 个答案:

答案 0 :(得分:0)

不确定 - 编写测试并查看是否失败:

from django.test import TestCase

class LoginPostTestCase(TestCase):
    def test_unauthorized_post(self):
        data = {}  # TODO: fill the data
        response = self.client.post('/user_account/', data)
        # TODO: assert you've been redirected to the login url

    def test_authorized_post(self):
        self.client.login(username='<username>', password='<password>')

        data = {}  # TODO: fill the data
        response = self.client.post('/user_account/', data)
        # TODO: assert not being redirected