首页 > 解决方案 > 如何使用 django-cors-headers 从数据库中动态填充 CORS_ORIGIN_WHITELIST?

问题描述

我正在编写一个 django 应用程序,其中我有一个名为的模型Website,其中包含人们的网站。我只允许在我的数据库中有网站的人使用我的 Django REST API。我正在使用该django-cors-headers软件包将人员域列入白名单:https ://github.com/adamchainz/django-cors-headers 。

CORS_ORIGIN_WHITELISTsettings.py 中的变量允许我将域列入白名单,如https://github.com/adamchainz/django-cors-headers#cors_origin_whitelist所示

问题是我必须查询我的模型以获取网站域,将它们附加到列表中,然后将该列表放入CORS_ORIGIN_WHITELIST. 但是我不能在 settings.py 中这样做,因为模型是在应用程序启动后加载的,而 settings.py 是启动应用程序的那个。

有谁知道解决这个问题的方法?任何建议将不胜感激。提前致谢。

标签: pythondjango

解决方案


django-cors-headers有一个信号可以让你决定是否允许request通过。文档准确地显示了您的用例。

请注意,CORS_ORIGIN_WHITELISTcors 中间件也会检查这一点(信号响应不会取代白名单),因此您可以同时拥有:静态白名单 + 依赖于request. 您无需检查信号处理程序中的静态白名单。


推荐阅读