Tengo el siguiente archivo models.py :
class Product(Model): ... class ExtraService(Model): ... class Order(Model): ... class OrderItem(Model): order = models.ForeignKey(verbose_name=_('Order Item'), to=Order) content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE) object_id = models.PositiveIntegerField() item_relation = GenericForeignKey('content_type', 'object_id') quantity = models.PositiveIntegerField(verbose_name=_('Quantity'), default=0) Y estoy trabajando mi admin.py esta manera:
class OrderItemInlineAdmin(GenericTabularInline): model = OrderItem min_num = 0 extra = 0 fields = ('item_relation', 'quantity',) ct_field = 'content_type' ct_fk_field = 'object_id' class OrderAdmin(admin.ModelAdmin): list_display = ('user_form',) inlines = (OrderItemInlineAdmin,) admin.site.register(Order, OrderAdmin) No puedo hacer que mi administrador muestre el objeto OrderItem en línea (que puede tener una clave para un Producto o un ExtraService) con mi objeto Order, seguido de su campo de cantidad. En cambio, dice que el campo item_relation es desconocido:
FieldError at /admin/product/order/13/ Unknown field(s) (item_relation) specified for OrderItem¿Cómo eludo esto?
PD: También intenté usar mi propio ModelForm pero aún no reconoce el campo item_relation .
PS1: si no defino una variable de campos en OrderItemInlineAdmin , termino con algo como esto, lo cual es incorrecto porque tengo objetos OrderItem existentes y esto supone que no los tengo (¿ningún objeto seleccionado y ninguna cantidad?): 