Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

123
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda