От models.pyДжанго InlineModelAdmin дает объект ошибки '' MediaDefiningClass не итерацию
class Indicator(models.Model):
name = models.CharField(max_length=50)
youtube = models.CharField(max_length=LONG_BLOG_POST_CHAR_LEN)
description = models.CharField(max_length=LONG_BLOG_POST_CHAR_LEN)
recommendation = models.CharField(max_length=LONG_BLOG_POST_CHAR_LEN)
isPublic = models.BooleanField(default=False)
methods_path = models.CharField(max_length=100,default=None)
meta_description = models.CharField(max_length=150,default='')
image_path = models.CharField(max_length=100,blank=True)
def __str__(self):
return self.name
class IndicatorParameterInt(models.Model):
name = models.CharField(max_length=50)
value = models.IntegerField(default=1)
indicator_int_parameter = models.ForeignKey(Indicator, on_delete=models.CASCADE)
hidden = models.BooleanField(default=False)
class IndicatorParameterFloat(models.Model):
name = models.CharField(max_length=50)
setting = models.FloatField(default=1)
indicator_float_parameter = models.ForeignKey(Indicator, on_delete=models.CASCADE)
hidden = models.BooleanField(default=False)
class Comparison(models.Model):
name = models.CharField(max_length=100)
От admin.py
from django.contrib import admin
from .models import *
# Register your models here.
admin.site.register(MarketData)
admin.site.register(Indicator)
admin.site.register(UserProfile)
class IndicatorParameterIntInline(admin.TabularInline):
model = IndicatorParameterInt
fk_name = "indicator_int_parameter"
class IndicatorParameterFloatInline(admin.TabularInline):
model = IndicatorParameterFloat
fk_name = "indicator_float_parameter"
class ComparisonInline(admin.TabularInline):
model = Comparison
fk_name = "Comparison"
class IndicatorInline(admin.ModelAdmin):
inlines = [
IndicatorParameterIntInline,
IndicatorParameterFloatInline,
ComparisonInline,
]
admin.site.unregister(Indicator)
admin.site.register(IndicatorInline)
Ошибка TypeError: объект '' MediaDefiningClass не итерацию приходит вверх по последней строке администратора: admin.site.register (IndicatorInline). Не имеет значения, пытаюсь ли я сначала регистрировать IndicatorInline или любой из классов внешнего ключа.
Я ссылался на this post, что поощряло использование атрибута fk_name. Ошибка возникает независимо от того, использую ли я fk_name.
Спасибо! Почему регистрация модели и встроенного класса вместе - единственный способ сделать ее счастливой? –
Вам всегда нужно регистрировать свою модель с помощью модели администратора. Вот как вы сообщаете своему администратору django, что он должен использовать этот конкретный ModelAdmin. Потому что, как вы можете видеть, у вас нет информации о модели в вашем IndicatorInline. – sebb