添加Django ForeignKey作为管理页面上的下拉选择

时间:2016-11-22 16:29:27

标签: python django

我希望能够创建一个模型TestCase,该模型具有products字段,该字段是antoher模型Product的ForeignKey。我希望能够使用管理员页面创建新的Product,然后在创建TestCase时,我希望能够从我已经创建的Product中进行选择。 Dropbox是理想的选择。这就是我的尝试:

models.py

class TestCase(TestBase):

    def __str__(self):
        return self.title


class Product(models.Model):
    products = models.ForeignKey(TestCase, on_delete=models.CASCADE, null=True)
    name = models.CharField(max_length=200, default='')

    def __str__(self):
        return self.name

admin.py

class ProductInline(admin.TabularInline):

    model = Product


class TestCaseAdmin(admin.ModelAdmin):

    inlines = [ProductInline]

admin.site.register(TestCase, TestCaseAdmin)

在管理页面上添加新的TestCase现在有用于创建产品的字段,但我想从已创建的Products中进行选择?

提前致谢。

1 个答案:

答案 0 :(得分:2)

您的模型结构错误。如果您希望能够从TestCase中已有产品的列表中进行选择,并且产品可以属于多个TestCase,则需要一个存在于TestCase上的ManyToManyField。