Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

321
Views
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()
over 4 years ago · Santiago Trujillo
2 answers
Answer question

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.

over 4 years ago · Santiago Trujillo Report

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.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!