我有以下模型与自身的多对多关系
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'>
所以我这样做错了,还是不支持?
答案 0 :(得分:14)
可能是'迟到了,但我试着回答这个问题。 Ticket.replies.through是一个用于管理多对多关系的表,它包含from_ticket和to_ticket(FK到模型Ticket)字段,您可以将此字段设置为TabularInline的选项fk_name。
class TicketReply(admin.TabularInline):
model = Ticket.replies.through
fk_name = 'from_ticket'