Как заставить syncdb работать автоматически в Django? - PullRequest
1 голос
/ 07 мая 2011

Когда у меня есть представление, которое помогает в загрузке файла, я хочу, чтобы он был сохранен в базе данных, что возможно только при запуске syncdb. Но до сих пор я знаю, как запустить python manage.py syncdb в командной строке python. Как сделать так, чтобы он запускался автоматически при загрузке некоторых данных?

Ответы [ 4 ]

3 голосов
/ 07 мая 2011

Немного хакерский способ:

import sys
sys.argv.append('syncdb')

from django.core.management import execute_manager
import settings # Your project's settings. Assumed to be in the same directory. 

execute_manager(settings)    
1 голос
/ 08 января 2014

Django имеет официальный способ Запуск команд управления из вашего кода

1 голос
/ 07 мая 2011

Вызов syncdb при каждой загрузке файла сам по себе неверен, но отвечает на ваш вопрос. Для звонка syncdb изнутри код:

from django.core.management.commands.syncdb import Command as SyncDbCommand
SyncDbCommand().handle_noargs()
1 голос
/ 07 мая 2011

Вы всегда можете позвонить

os.system('python /path/manage.py syncdb')

Это должно запустить ваш процесс syncdb, однако, я думаю, есть лучшие способы решить эту проблему вообще без использования syncdb.

О, и вынужно будет использовать флаг, который будет отвечать у на все вопросы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...