我有一个模型类,我正在使用django管理员,它有一些内联表单。我无法保存此模型的更改表单。它总是抱怨“请更正下面的错误”,即使页面上没有突出显示错误。
我已将其缩小到导致问题的内联:HorizontalInline当我删除此内容时,一切正常。
以下是我的模型的相关字段:
class Equipment(models.Model):
name = models.CharField(max_length=14)
description = models.CharField(max_length=100)
class HorizontalInterface(models.Model):
name = models.CharField(max_length=100, blank=True,)
us_equip = models.ForeignKey(Equipment, related_name='upstream')
ds_equip = models.ForeignKey(Equipment, related_name='downstream')
以下是我的admin.py的相关字段:
class HorizontalInlineFormSet(BaseInlineFormSet):
def __init__(self, *args, **kwargs):
super(HorizontalInlineFormSet, self).__init__(*args, **kwargs)
self.queryset = HorizontalInterface.objects.filter(Q(us_equip=self.instance) | Q(ds_equip=self.instance))
class HorizontalInline(admin.TabularInline):
model = HorizontalInterface
formset = HorizontalInlineFormSet
show_change_link = True
extra = 0
fk_name = 'us_equip'
class EquipmentAdmin(admin.ModelAdmin):
list_display = ('name', 'description')
inlines = [
HorizontalInline
]
我认为它无法处理的复杂性与我的水平界面模型有两个设备外键的事实有关,我想显示与所讨论的设备相关的上游和下游的所有接口,但也能够编辑他们并保存设备。
如何解决我的设备模型上的保存问题?
提前感谢您的帮助。