2011-11-18 26 views
7

私は多対多の関係では、次のモデルがあり、それ自体にDjangoの管理インライン

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() 

私は、次のコード

を使用して、管理者のインラインとしてこのモデルを表示しようとしています
class TicketReply(admin.TabularInline): 
    model = Ticket.replies.through 

私はこのエラーを得続けるしかし

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

はので、私はこの間違っているイム、またはこのnはサポートされていますか?

+0

FK_NAMEとrelated_nameはあなたがチェックすべき設定は以下のとおりです。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

related_name設定を追加した後でも同じエラーが発生し続けます.fk_nameを追加すると、 'TicketReply.fk_name'はフィールド '返信'モデル 'Ticket_replies'から、私はこれがサポートされているとは思えません。インラインdjangoが外部キーを期待しているとソースコードを見ているからです。 – Paulo

+0

Ticket_repliesモデルも投稿してください –

答えて

8

「遅くなるかもしれませんが、私はこの質問に答えてください。 Ticket.replies.throughはmany-to-manyリレーションシップを管理するテーブルです.ticketとto_ticket(FKからTicketをモデル化する)フィールドを持ち、このフィールドをTabularInlineのオプションfk_nameとして設定できます。

class TicketReply(admin.TabularInline): 
    model = Ticket.replies.through 
    fk_name = 'from_ticket' 
関連する問題