运行测试时不会加载Django设置

时间:2017-05-30 15:08:16

标签: python django settings

我的应用程序的不同环境有不同的设置,例如本地,开发,舞台,制作。因此,当我在本地运行我的应用时,我将设置作为参数传递给#include <stdio.h> #include <stdlib.h> #include <string.h> #define SIZE 128 int main() { FILE* fpassengers; int passport_num; char first_name[SIZE]; char last_name[SIZE]; printf("\nPassengers Details:\n===================\n"); printf("Please Enter Passenger`s Passport-->:"); scanf("%d", &passport_num); getchar(); printf("\nPlease Enter Passenger`s First NAME-->:"); fgets(first_name, SIZE, stdin); first_name[strlen(first_name)-1] = '\0'; printf("\nPlease Enter Passenger`s Last NAME-->:"); fgets(last_name, SIZE, stdin); last_name[strlen(last_name)-1] = '\0'; fpassengers = fopen("passengers.txt", "w"); if (fpassengers == NULL) { perror("Fopen"); exit(EXIT_FAILURE); } fprintf(fpassengers,"%d %s %s", passport_num, first_name, last_name); fclose(fpassengers); } ,例如manage.py,确实我的所有设置都已正确初始化,例如python3 manage.py runserver 0.0.0.0:8080 --settings=myapp.settings.local DEBUG在我的设置文件中设置为True,而不是False中的defaultsettings.py

但是,当我尝试使用python3 manage.py test --settings=myapp.settings.local运行测试时,DEBUG的值设置为false,即从defaultsettings.py加载。为什么会发生这种情况?我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

确保在测试中导入如下设置: from django.conf import settings

答案 1 :(得分:0)

事实证明,当您运行测试时,您的所有设置都与设置文件(DEBUG 除外)的设置相同。 DEBUG始终设置为False,以使设置尽可能接近生产。

我最后关注这篇文章:Detect django testing mode

import sys TESTING = sys.argv[1:2] == ['test']