Django Admin - 多个内联

时间:2013-03-27 11:24:14

标签: django django-admin

在我的管理控制台中使用多个内联时遇到一些麻烦,超过了我正在玩的3个模型。

型号:

class carManufacturer(models.Model):
    name = models.CharField(max_length=200)
    country = models.CharField(max_length=200)
    description = models.CharField(max_length=1000)

    def __unicode__(self):
        return self.name


class vehicleModel(models.Model):
    carManufacturer = models.ForeignKey(carManufacturer)
    model = models.CharField(max_length=200)

    def __unicode__(self):
        return self.model

class vehicleCode(models.Model):
    vehicleModel = models.ForeignKey(vehicleModel)
    variantCode = models.CharField(max_length=200) 
    variantBadge = models.CharField(max_length=200)
    manuStart = models.DateTimeField('Manufacture Start Date')
    manuFin = models.DateTimeField('Manufacture End Date')

    def __unicode__(self):
        return self.variantCode

我想要做的是当我添加汽车制造商时我可以通过我的内联添加汽车模型,当我编辑模型时,我可以通过另一个内联编辑车辆代码/变体。

我有一个我正在使用的admin.py文件:

from Cars.models import carManufacturer, vehicleModel, vehicleCode
from django.contrib import admin

class modelInline(admin.TabularInline):
    model = vehicleModel
    extra = 0

class codeInline(admin.TabularInline):
    variantCode = vehicleCode
    extra = 0


class CarAdmin(admin.ModelAdmin):
    fields = ['name',  'description', 'country']
    inlines = [modelInline]

class VehicleModelAdmin(admin.ModelAdmin):
    fields = ['carManufacturer','model']
    #inlines = [codeInline]


admin.site.register(carManufacturer, CarAdmin)
admin.site.register(vehicleModel, VehicleModelAdmin)

一旦我取消注释使用与第一个相同的方法的第二个内联,我就会收到以下错误:

  

'model'是'VehicleModelAdmin.inlines [0]'的必需属性。

我很难理解我做错了什么,特别是因为我有第一个内联工作,任何输入都会非常感激

1 个答案:

答案 0 :(得分:4)

codeInline没有任何TabularInline的模型字段,你需要像上面那样的模型字段。应该有类似的内容

class codeInline(admin.TabularInline):
    model = vehicleCode
    extra = 0