2011-11-18 27 views
7

tengo el siguiente modelo con una relación de muchos a muchos a sílínea Django de administración para ManyToMany recursiva

class Ticket(models.Model): 

    STATUS = (
     (0, "Open"), 
     (1, "Closed"), 
    ) 
    status = models.SmallIntegerField(default=0,choices=STATUS) 
    title = models.CharField(max_length=100) 
    replies = models.ManyToManyField('self') 
    description = models.TextField() 

estoy tratando de mostrar este modelo como una línea en el admin, usando el siguiente código

class TicketReply(admin.TabularInline): 
    model = Ticket.replies.through 

sin embargo me siguen dando este error

<class 'tsn.ticket.models.Ticket_replies'> has more than 1 ForeignKey to <class 'tsn.ticket.models.Ticket'> 

así que estoy haciendo esto mal, o se trata de n ot compatible?

+0

FK_NAME y related_name son ajustes que debe comprobar: https://docs.djangoproject.com/en/dev/ref/contrib/admin/#working-with-a-model-with-two-or- more-foreign-keys-to-the-same-parent-model – arie

+0

sigo obteniendo el mismo error, incluso después de agregar el parámetro related_name, y al agregar fk_name dice 'TicketReply.fk_name' se refiere al campo 'respuestas' que falta del modelo 'TicketReplies', no creo que esto sea compatible porque al mirar el código fuente, al validar el Django en línea se espera una Foreignkey – Paulo

+0

También debe publicar el modelo TicketReplies –

Respuesta

8

Puede que sea demasiado tarde, pero trato de responder a esta pregunta. Ticket.replies.through es una tabla para administrar relaciones de muchos a muchos, tiene los campos from_ticket y to_ticket (FK a modelo Ticket) y puede establecer estos campos como opción fk_name para TabularInline.

class TicketReply(admin.TabularInline): 
    model = Ticket.replies.through 
    fk_name = 'from_ticket' 
Cuestiones relacionadas