Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何让Django测试客户端向不同的子域发送请求_Python_Django_Subdomain_Django Urls_Django Testing - Fatal编程技术网

Python 如何让Django测试客户端向不同的子域发送请求

Python 如何让Django测试客户端向不同的子域发送请求,python,django,subdomain,django-urls,django-testing,Python,Django,Subdomain,Django Urls,Django Testing,我正在使用django子域项目在django项目中启用子域,这很好 然而,在编写测试时,我不知道如何让Django测试客户端向不同的子域发送请求 它只向根域发送请求,即使我使用@override\u settings将root\u URLCONF更改为指向子域\u URLCONF中的一个条目。但是,如果我直接将settings.py中的ROOT_URLCONF更改为所需的子域URLCONF,这显然是一个不可接受的解决方案,那么它是有效的 还尝试对Django TestCase类进行子类化,并将“

我正在使用django子域项目在django项目中启用子域,这很好

然而,在编写测试时,我不知道如何让Django测试客户端向不同的子域发送请求

它只向根域发送请求,即使我使用
@override\u settings
将root\u URLCONF更改为指向子域\u URLCONF中的一个条目。但是,如果我直接将
settings.py
中的ROOT_URLCONF更改为所需的子域URLCONF,这显然是一个不可接受的解决方案,那么它是有效的

还尝试对Django TestCase类进行子类化,并将“url”字段设置为子域urlconf,但请求仍将转到根目录,导致404

最后,我尝试使用
subdomains.utils.reverse
获得一个绝对url,但测试客户机根本不接受


这个问题可能与我有关。有人在评论中提到,黑客已经被用来解决这个问题。请阐明上述黑客行为或更好的解决方案,以解决这个肯定并不罕见的用例。

什么是
子域_reverse
功能?它返回的URL的格式是什么?我尝试过各种各样的URL黑客攻击,但都没用,所以如果这能奏效,我会感到惊讶。我正在使用它进行子域管理
HTTP_HOST = 'rede.example.com'


class TestIndexView(TestCase):

    def setUp(self):
        self.url = subdomain_reverse('network_index', subdomain='rede')

    def test_render(self):
        response = self.client.get(self.url, HTTP_HOST=HTTP_HOST)
        self.assertEqual(response.status_code, 200)