0
我想使用limit_choices_to
來減少使用Inline時的模型的Django管理員的選擇集。ManyToMany上的Django limit_choices_to與Inline相關聯
有趣的是,我爲什麼要限制選擇的原因是爲了表現我想在我的相關模型類的__str__
方法使用父模型的屬性,而不是限制的選擇會導致許多令人望而卻步的SQL查詢。
以下工作
class ParentOfA(models.Model):
name = models.CharField(max_length=50, null=True)
class A(models.Model):
parent = models.ForeignKey(ParentOfA)
def __str__(self):
return "%s" % self.parent
class B(models.Model):
a = models.ManyToManyField(A, limit_choices_to={"a__name":'parent name'})
如果我沒有在管理形式使用內嵌的B
(以下例子in the docs)。
E.g.
@admin.register(B)
class BAdmin(admin.ModelAdmin):
pass
然而,與內聯limit_choices_to
沒有影響:
class BInline(admin.TabularInline):
model = B.A.through
@admin.register(B)
class BAdmin(admin.ModelAdmin):
inline = (BInline,)
有什麼建議?
你的問題是令人困惑,因爲你正在使用真實姓名的混合物,例如'ScheduleDeviceParameterGroup',並且構成名字,例如'B'。 – Alasdair
@Alasdair固定。有關案件的進一步建議? –