4

I have a problem concerning Django inlines within the admin interface. I have two classes: List and ListElement defined as follows:

class List(models.Model):
    pass

class ListElement(models.Model):
    text = models.CharField(max_length = 64)
    parent = models.ForeignKey(List, related_name = 'elements')

The admin view is:

class ListElementInline(admin.TabularInline):
    model = ListElement
    extra = 3

class ListForm(forms.ModelForm):
    default_text = forms.CharField(max_length = 64)
    class Meta:
        model = List

class ListAdmin(admin.ModelAdmin):
    form = ListForm
    inlines = [ListElementInline]

Since I am lazy, I would like to have a List-level field which I could fill with a "default" value and before the whole thing is saved this default value would be inserted into all ListElements that were left blank.

The major problem that I have encountered is the fact that this should be done during the validation step, when the data is not yet cleaned. Also, I know that is is possible to communicate between the inline form and the whole inline formset (link), but I couldn't find any information how to connect the modelform (ListAdmin) and the formset (ListElementInline) that is inlined within it.

Thanks for any advice.

Community
  • 1
  • 1
Borek
  • 41
  • 2

0 Answers0