¿Qué necesito importar para obtener acceso a mis modelos?

Me gustaría ejecutar un script para poblar mi base de datos. Me gustaría acceder a él a través de la base de datos Django API.

El único problema es que no sé qué necesitaría importar para tener acceso a esto.

¿Cómo se puede lograr esto?

Importa tu módulo de configuración también

import os os.environ["DJANGO_SETTINGS_MODULE"] = "mysite.settings" from mysite.polls.models import Poll, Choice 

debe hacer el truco

Esto es lo que tengo en la parte superior de uno de mis scripts de carga de datos.

 import string import sys try: import settings # Assumed to be in the same directory. #settings.DISABLE_TRANSACTION_MANAGEMENT = True except ImportError: sys.stderr.write("Error: Can't find the file 'settings.py' in the directory containing %r. It appears you've customized things.\nYou'll have to run django-admin.py, passing it your settings module.\n(If the file settings.py does indeed exist, it's causing an ImportError somehow.)\n" % __file__) sys.exit(1) #Setup the django environment with the settings module. import django import django.core.management django.core.management.setup_environ(settings) from django.db import transaction 

Todo esto debería ejecutarse antes de hacer mucho más en su script.

Otro método es usar aparatos y manage.py. Aunque si solo está intentando realizar una carga de datos masiva para inicializar una base de datos, esto debería funcionar bien.

También, dependiendo de lo que esté haciendo, puede o no querer hacerlo todo en una transacción. Descomente la línea de transacción anterior y estructure su código de manera similar.

 transaction.enter_transaction_management() try: #Do some stuff transaction.commit() finally: transaction.rollback() pass transaction.leave_transaction_management() 

Si usa el argumento de shell para el script manage.py en el directorio de su proyecto, no tiene que importar las configuraciones manualmente:

 $ cd mysite/ $ ./manage.py shell Python 2.5.2 (r252:60911, Jun 10 2008, 10:35:34) [GCC 4.0.1 (Apple Inc. build 5465)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> from myapp.models import * >>> 

Para uso no interactivo, puede implementar un comando personalizado y ejecutarlo con manage.py .

La solución más limpia es agregar extensiones django.

 (virt1) tsmets @ calvin: ~ / Documents / prive / rugby-club / proposal / kitu $ yolk -l
 Django - 1.3.1 - activo 
 Pygments - 1.4 - activo 
 Python - 2.6.5 - desarrollo activo (/usr/lib/python2.6/lib-dynload)
 django-extensiones - 0.7.1 - activo 
 pip - 1.0.2 - activo 
 setuptools - 0.6c11 - activo 
 wsgiref - 0.1.2 - desarrollo activo (/usr/lib/python2.6)
 yema - 0.4.1 - activa 

La lista de posibles comandos se extiende luego, entre otras cosas, con el comando runscript.

Además de sus propios archivos de modelos, también debe importar su módulo de configuración.