django:formfield_for_foreignkey不允许我创建新的内联对象

时间:2012-10-11 08:38:13

标签: python django django-admin

我有以下型号:

class Benchmark(models.Model):
    name = models.CharField(max_length=50)
    location = models.CharField(max_length=150)
    platforms = models.ManyToManyField('Platform')

class Platform(models.Model):
    name = models.CharField(max_length=50)

class KnobItem(models.Model):
    value = models.CharField(max_length=150)
    knob = models.ForeignKey('Knob')

class BenchmarkKnobItem(KnobItem):
    benchmark = models.ForeignKey('Benchmark')

class PlatformKnobItem(KnobItem):
    platform = models.ForeignKey('Platform')

class Knob(models.Model):
    name = models.CharField(max_length=150)

在管理员中,我将BenchmarkKnobItem和PlatformKnobItem作为内联。添加新基准旋钮的下拉菜单具有不良效果,还列出了可用的平台旋钮。然后我使用formfield_for_foreignkey方法将可用的旋钮用于各自的基准或平台模型。

def formfield_for_foreignkey(self, db_field, request, **kwargs):
    if db_field.name == "knob":
        kwargs["queryset"] = BenchmarkKnobItem.objects.all()
    return super(BenchmarkKnobItemInline, self).formfield_for_foreignkey(db_field, request, **kwargs)

不幸的是,这不允许我创建一个新的内联对象。管理员说“选择一个有效的选择。这个选择不是可用的选择之一。”我假设这是因为该对象尚未保存。

是否有人对如何允许我创建新旋钮有任何想法,同时仍限制各自类型的可用选择?

0 个答案:

没有答案