Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

315
Vistas
El nombre 'Grupo' no está definido

Django 1.11

Pitón 3.6.1

Para que mi proyecto se despliegue, tendré que predefinir algunas cosas. Es decir, necesitaré un par de grupos para usuarios.

Entonces, hice una "implementación" de directorio y la coloqué al lado del directorio del proyecto.

Cuando se cree una nueva base de datos, simplemente ejecutaré:

 python manage.py shell < ../deployment/initialize_project.py

Este código funciona:

 from django.contrib.auth.models import Group Group.objects.create(name="commentator") # Can only comment. Group.objects.create(name="contributor") # Can add, change and delete # objects.

Este código no :

 from django.contrib.auth.models import Group def initialize_roles(): Group.objects.create(name="commentator") # line 6 Group.objects.create(name="contributor") initialize_roles() # line 12

Rastrear:

 Traceback (most recent call last): File "manage.py", line 22, in <module> execute_from_command_line(sys.argv) File "/home/michael/workspace/venv/photoarchive/lib/python3.6/site-packages/django/core/management/__init__.py", line 363, in execute_from_command_line utility.execute() File "/home/michael/workspace/venv/photoarchive/lib/python3.6/site-packages/django/core/management/__init__.py", line 355, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/home/michael/workspace/venv/photoarchive/lib/python3.6/site-packages/django/core/management/base.py", line 283, in run_from_argv self.execute(*args, **cmd_options) File "/home/michael/workspace/venv/photoarchive/lib/python3.6/site-packages/django/core/management/base.py", line 330, in execute output = self.handle(*args, **options) File "/home/michael/workspace/venv/photoarchive/lib/python3.6/site-packages/django/core/management/commands/shell.py", line 101, in handle exec(sys.stdin.read()) File "<string>", line 12, in <module> File "<string>", line 6, in initialize_roles NameError: name 'Group' is not defined

Marqué las líneas 6 y 12 en el código anterior (como comentarios en línea).

Intenté usar pdb.set_trace(), pero aparece el mismo error. Como si pdb no estuviera definido.

También traté de no alimentar a manage.py en initialize_project.py, sino simplemente ejecutar python manage.py shell y alimentar el código línea por línea. Funcionó perfectamente.

¿Podrías darme una patada aquí?

AÑADIDO MÁS TARDE

Esto funciona:

 def initialize_roles(): from django.contrib.auth.models import Group Group.objects.create(name="commentator") # Can only comment. Group.objects.create(name="contributor") # Can add, change and delete # objects. initialize_roles()
about 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

A menos que haya algo más en lo que estás haciendo, esto se siente como algo que los accesorios están destinados a resolver. Si hay más, puede agregar migraciones de datos personalizadas como parte del proceso de configuración inicial. Eso evitará tener que preocuparse de cuándo hay modelos disponibles para usted.

about 4 years ago · Santiago Trujillo Denunciar

0

Me enfrenté a una situación similar: este comportamiento es extraño, de hecho. Parece que dentro de esta función, faltan todas las importaciones (lo verifiqué con dir() - estaba vacío), pero no sé por qué. Sería genial si alguien pudiera responder eso.

No creo que sea elegante mantener el script desenvuelto por función, y como me enfrentaba a lo mismo, encontré este hilo útil (respuesta de danodonovan): Python Script from Django shell . Lo que sugiere es crear un subdirectorio de commands y agregarle un script (por ejemplo, init_db ). Entonces puedes ejecutar fácilmente:

 ./manage.py init_db

Esto resuelve los problemas indicados en su pregunta, pero no responde por qué sucede. Espero que alguien explique eso.

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda