Я сохранил токен API как переменную окружения в моем файле wsgi. Я могу получить его в одном экземпляре в приложении Django, но не в другом.
Я могу успешно использовать токен во время операции save_model в моем администраторе. Когда я использую почти идентичный код в команде управления, я получаю ошибку аутентификации.
Мой файл wsgi.py:
import os
import sys
from django.core.wsgi import get_wsgi_application
os.environ['SLACK_TOKEN'] = '12344567890qazxswedcvfrtgbnhyujmkiolp'
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myapp.settings')
application = get_wsgi_application()
Рабочее использование admin.py:
import os
from slacker import Slacker
def save_model(self, request, obj, form, change):
if obj.condition == True:
super().save_model(request, obj, form, change)
token = os.getenv('SLACK_TOKEN')
slack = Slacker(token)
slack.chat.post_message('#test-channel', 'mymessage')
Не работает использование команды управления:
import os
from slacker import Slacker
def handle(self, *args, **options):
try:
#test condition
except:
token = os.getenv('SLACK_TOKEN')
slack = Slacker(token)
slack.chat.post_message('#newsflow-test', 'mymessage')
Устранение неполадок указывает на то, что переменная env не загружается - print (token) не дает ответа, когда я запускаю команду управления или пытаюсь получить токен в Djangoоболочка.