"python 스크립트를 만들고 해당 스크립트를 cron으로 설치하십시오 (스크립트를 실행하기 전에 DJANGO _SETTINGS _MODULE 변수 설정으로)?" 먼저
, 당신은 다음과 같이 배치 로더를 작성할 수
그리고 별도의 모듈 (예를 들어, forms.py
)에서 양식을 선언해야합니다. (우리는이 많다.) 여기에 약간의 고유 한 처리가 있음을
from myapp.forms import MyObjectLoadForm
from myapp.models import MyObject
import xml.etree.ElementTree as ET
def xmlToDict(element):
return dict(
field1= element.findtext('tag1'),
field2= element.findtext('tag2'),
)
def loadRow(aDict):
f= MyObjectLoadForm(aDict)
if f.is_valid():
f.save()
def parseAndLoad(someFile):
doc= ET.parse(someFile).getroot()
for tag in doc.getiterator("someTag")
loadRow(xmlToDict(tag))
주 - 그냥보기 기능과 같은 양식 및 모델을 사용합니다.
응용 프로그램의 models.py
및 forms.py
에 따라 달라 지므로이 일괄 처리 스크립트는 장고 응용 프로그램과 함께 배치됩니다.
"흥미로운"부분은 장고의 양식과 원활하게 작동하도록 XML 행을 사전으로 변환하는 것입니다. 이 명령 행 프로그램은보기와 동일한 장고 구성 요소를 모두 사용합니다.
구문 분석 및 로깅 옵션을 추가하여 완전한 명령 줄 응용 프로그램을 만들 수 있습니다. 또한 로직의 대부분은 일반적인 것임을 알게 될 것입니다 - xmlToDict
기능 만이 정말로 독특합니다. 우리는 이러한 "빌더"를 호출하고 빌더가 소스 문서에서 파이썬 사전에 대한 모든 다형성 매핑이되도록 클래스 계층 구조를 사용합니다.
나는 이것을 양쪽에서 할 수 있으며,보기에서 저장하거나 파이썬 스크립트에서 저장할 수 있습니다. – Marius
사용자 정의 관리 명령은 직접 장고 환경 설정을 변경하는 것보다 나은 해결책입니다. Daevaorn의 대답을 참조하십시오. –