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

121
Views
Admin y Meta no ven los campos de las clases abstractas principales

Yo uso Django 1.10. Tengo la siguiente estructura modelo:

 class GenericPage(models.Model): """Abstract page, other pages inherit from it.""" book = models.ForeignKey('Book', on_delete=models.CASCADE) class Meta: abstract = True class GenericColorPage(models.Model): """Abstract page that is sketchable and colorable, other pages inherit from it.""" sketched = models.BooleanField(default=False) colored = models.BooleanField(default=False) class Meta: abstract = True class GenericBookPage(GenericColorPage): """A normal book page, with a number. Needs to be storyboarded and edited.""" ### #various additional fields ### class Meta: # unique_together = (('page_number', 'book'),) # impedes movement of pages ordering = ('-book', '-page_number',) abstract = True objects = BookPageManager() # the manager for book pages class BookPage(GenericBookPage): """Just a regular book page with text (that needs to be proofread)""" proofread = models.BooleanField(default=False)

Además, un extracto de Admin:

 class BookPageAdmin(admin.ModelAdmin): # fields NOT to show in Edit Page. list_display = ('__str__', 'page_name', 'sketched', 'colored', 'edited', 'proofread',) list_filter = ('book',) readonly_fields = ('page_number',) # valid page number is assigned via overridden save() in model actions = ['delete_selected',]

Intenté hacer ./manage.py makemigrations pero arroja los siguientes errores:

 <class 'progress.admin.BookPageAdmin'>: (admin.E116) The value of 'list_filter[0]' refers to 'book', which does not refer to a Field. progress.BookPage: (models.E015) 'ordering' refers to the non-existent field 'book'.

En el pasado, cuando no usaba los resúmenes y simplemente ponía todo en el modelo BookPage , todo funcionaba bien. Pero parece que Meta y Admin no ven los campos en las clases principales. ¿Me estoy perdiendo de algo? ¿Hay alguna manera de hacer que lean campos de padres abstractos?

about 4 years ago · Santiago Trujillo
1 answers
Answer question

0

En el pasado, cuando no usaba los resúmenes y simplemente ponía todo en el modelo BookPage, todo funcionaba bien.

Por supuesto, funcionó bien porque puso todo dentro BookPage que no es una clase abstracta, lo que significa que se creará la tabla (y, por lo tanto, los campos).

Pero parece que Meta y Admin no ven los campos en las clases principales. ¿Me estoy perdiendo de algo?

Te estás perdiendo el hecho de que ninguno de tus modelos hereda del modelo abstracto GenericPage . Por lo tanto, el campo del book nunca se crea.

¿Hay alguna manera de hacer que lean campos de padres abstractos?

Debe crear/modificar un modelo que herede de un modelo abstracto. Tal vez, haz esto:

 class GenericBookPage(GenericColorPage, GenericPage):

lo que le permite heredar los campos GenericColorPage y GenericPage . Cuando digo heredar me refiero a cuando se ejecuta el comando de migrate para crear realmente la tabla de la base de datos y las columnas relevantes (campos del modelo).

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!