models.py/admin.py については以下を参照してください
FashionMaleModel を変更または追加しようとすると、インラインは表示されませんが、FashionFemaleModel では表示されます。管理サイトの登録順序を変更して、Male を Female の下に配置すると、インラインは FashionMaleModel にのみ表示され、FashionFemaleModel には表示されません。
インラインがどちらか一方にしか表示されないのはなぜですか?
ありがとう!
たくさんあるので、これらのモデルを切り捨てました。また、FashionObject/FashionPage は、id、name、publish_date などを使用してカスタム CMS の一部として作成した基本クラスです。
models.py:
class FashionModelRole(models.Model):
title = models.CharField(max_length=255,)
class FashionModelContributor(models.Model):
role = models.ForeignKey(FashionModelRole)
person = models.ForeignKey(FashionModelPerson, related_name='contributions')
class FashionModel(FashionObject):
gender = models.CharField(max_length=1,choices=(('F','Female'),('M','Male')),
editable=False)
class FashionExperience(models.Model):
model = models.ForeignKey(FashionModel, related_name = 'experience')
division = models.ForeignKey(FashionDivision, related_name = 'levels')
experience = models.CharField(max_length=1,choices=(('5','Professional'),('4','Advanced'),('3','Intermediate'),('2','Developing'),('1','Recreational'),))
class FashionMaleModel(FashionModel):
jacket_size = MeasurementField(max_length=6, blank=True, null=True)
def __init__(self, *args, **kwargs):
super(FashionMaleModel, self).__init__(*args, **kwargs)
self.gender = 'M'
class FashionFemaleModel(FashionModel):
dress_size = MeasurementField(max_length=6, blank=True, null=True)
def __init__(self, *args, **kwargs):
super(FashionFemaleModel, self).__init__(*args, **kwargs)
self.gender = 'F'
class FashionModelPhoto(models.Model):
model = models.ForeignKey(FashionModel, related_name = 'photos')
contributors = models.ManyToManyField(FashionModelContributor, null=True, blank=True)
admin.py:
class FashionExperienceInline(admin.TabularInline):
model = FashionExperience
class FashionModelPhotoInline(admin.TabularInline):
model = FashionModelPhoto
class FashionDivisionAdmin(FashionPageAdmin):
def __init__(self, *args, **kwargs):
super(FashionDivisionAdmin, self).__init__(*args, **kwargs)
class FashionModelAdmin(FashionObjectAdmin):
def __init__(self, *args, **kwargs):
super(FashionModelAdmin, self).__init__(*args, **kwargs)
self.inlines += (
FashionModelPhotoInline,
FashionExperienceInline,
)
class FashionMaleModelAdmin(FashionModelAdmin):
def __init__(self, *args, **kwargs):
super(FashionMaleModelAdmin, self).__init__(*args, **kwargs)
class FashionFemaleModelAdmin(FashionModelAdmin):
def __init__(self, *args, **kwargs):
super(FashionFemaleModelAdmin, self).__init__(*args, **kwargs)
class FashionModelPersonAdmin(admin.ModelAdmin):
def __init__(self, *args, **kwargs):
super(FashionModelPersonAdmin, self).__init__(*args, **kwargs)
class FashionModelRoleAdmin(admin.ModelAdmin):
def __init__(self, *args, **kwargs):
super(FashionModelRoleAdmin, self).__init__(*args, **kwargs)
class FashionModelContributorAdmin(admin.ModelAdmin):
def __init__(self, *args, **kwargs):
super(FashionModelContributorAdmin, self).__init__(*args, **kwargs)
admin.site.register(FashionMaleModel, FashionMaleModelAdmin)
admin.site.register(FashionFemaleModel, FashionFemaleModelAdmin)
admin.site.register(FashionDivision, FashionDivisionAdmin)
admin.site.register(FashionModelPerson, FashionModelPersonAdmin)
admin.site.register(FashionModelRole, FashionModelRoleAdmin)
admin.site.register(FashionModelContributor, FashionModelContributorAdmin)