管理コンソール内で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)
最初のインラインと同じ方法を使用する2番目のインラインのコメントを解除するとすぐに、次のエラーが発生します。
「model」は「VehicleModelAdmin.inlines[0]」の必須属性です。
私は自分が間違っていることを理解するのに苦労しています。特に最初のインラインが機能しているので、どんな入力でも大歓迎です。