-
-
Notifications
You must be signed in to change notification settings - Fork 302
Open
Description
Hi, I am facing a problem with my polymorphic inlines:
Here is my class hierarchy:
class BaseParam(PolymorphicModel):
somefields...
submission = models.ForeignKey(....)
class TextParam(BaseParam):
""" Standard text input """
class Meta:
proxy = True
class BooleanParam(BaseParam):
...concrete subclass
class DecimalParam(BaseParam):
...concrete subclass
class IntegerParam(BaseParam):
...concrete subclass
class ListParam(BaseParam):
...concrete subclass
class FileInput(BaseParam):
...concrete subclassI used in the "SubmissionAdmin" polymorphic inlines as follow:
class PolymorphicInputInlineChild(StackedPolymorphicInline.Child):
...just override formfield_for_foregeinley for another relation field in main BaseParam class
class SubmitInputsInline(StackedPolymorphicInline, CompactInline):
class BooleanParamInline(PolymorphicInputInlineChild):
model = BooleanParam
exclude = ['order']
classes = ['collapse']
class ListParamInline(PolymorphicInputInlineChild):
model = ListParam
exclude = ['order']
class DecimalParamInline(PolymorphicInputInlineChild):
model = DecimalParam
exclude = ['order']
class IntegerParamInline(PolymorphicInputInlineChild):
model = IntegerParam
exclude = ['order']
class TextParamInline(PolymorphicInputInlineChild):
model = TextParam
exclude = ['order']
class FileInputInline(PolymorphicInputInlineChild):
model = FileInput
exclude = ['order']
model = BaseParam
exclude = ['order']
verbose_name = "Param"
verbose_name_plural = "Params"
classes = ['collapse', ]
child_inlines = (
TextParamInline,
FileInputInline,
BooleanParamInline,
ListParamInline,
IntegerParamInline,
DecimalParamInline,
)
list_display_links = None
list_display = ('name', '__class__', 'default')And finally my main modelAdmin:
class ServiceSubmissionAdmin(PolymorphicInlineSupportMixin, WavesModelAdmin):
""" Submission process administration -- Model Submission """
class Media:
...
inlines = [
SubmitInputsInline,
... other non polymorphic inlines
]For all non-proxy subclasses, everything works well, but in case I wan to add a TextParam, upon save I got this error:
ValidationError at /admin/waves/submission/1/change/
[u"Child model type <class 'waves.models.inputs.BaseParam'> is not part of the formset"]
Is this a configuration issue ? Am I missing an important point ? of should I replace model class in TextParam Inline to BaseParam, and lost possibilyt to filter my future queryset for this sub-class ?
Metadata
Metadata
Assignees
Labels
No labels