class OrganizationMaterialVariantPriceForm(ModelForm):
def __init_subclass__(cls, **kwargs):
if cls.__name__ == OrganizationMaterialVariantPriceForm.__name__:
for color in Color.objects.all():
field_name = f'color_{color.slug}'
cls.declared_fields[field_name] = IntegerField(
label=color.name,
required=False,
widget=UnfoldAdminIntegerFieldWidget()
)
class Meta:
model = OrganizationMaterialVariantPrice
fields = []
class OrganizationMaterialVariantPriceInline(TabularInline):
model = OrganizationMaterialVariantPrice
extra = 0
form = OrganizationMaterialVariantPriceForm
fields = ['material']
def get_fields(self, request, obj=None):
fields = super().get_fields(request, obj) + [
f'color_{color.slug}' for color in Color.objects.all()
]
return fields