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

112
Views
django muchos-a-muchos muestra legible por humanos en forma

tengo estos modelos:

 CURSES=(('python','Python'),('django','Django'),...) class Asig(models.Model): ... name = models.CharField(max_length=100, choices=CURSES) class Profesor(AbstractUser): ... asigs = models.ManyToManyField(Asig)

Luego, cuando renderizo el formulario usando ModelForm, el campo de muchos a muchos se muestra con la cadena 'python' en lugar de 'Python', también, cuando miro el html codificado, las opciones de selección múltiple se ven así:

 <option value='1'>python</option>

en vez de

 <option value='python'>Python</option>
about 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Si desea usar el valor 'Python' en el método __str__ del modelo, entonces debe usar self.get_name_display() en lugar de self.name :

 class Asig(models.Model): ... name = models.CharField(max_length=100, choices=CURSES) def __str__(self): # use @python_2_unicode_compatible or define __unicode__ if using Python 2 return self.get_name_display()

No puede cambiar fácilmente el campo de muchos a muchos para usar value='python' en lugar de value='1' (la clave principal). Así es como funcionan los campos de muchos a muchos.

about 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!