[Answer]-Overriding formset in TabularInline Django admin form

1👍

The answer to my question didn’t have to do with how I was structuring my forms, but rather how I was joining fields on my models. I had the following structure in my models:

class App(models.Model):

    package = models.FileField(upload_to=settings.APP_PACKAGE_ROOT)
    assets = models.ManyToManyField('AppAsset', blank=True, null=True)
    download_count = models.IntegerField(default=0)

class AppAsset(models.Model):

    def __unicode__(self):
        return self.asset_file.name

    notes = models.CharField(max_length=255, null=True, blank=True)
    type = models.CharField(max_length=255, null=True, blank=True)
    asset_file = models.FileField(upload_to=settings.APP_PACKAGE_ROOT)

What I did was change the structure such that AppAsset now has a foreign key on App for its assets. After that, I could use the TabularInline on the AppAsset model with no problems. Here are the latest source files:

https://github.com/ridecharge/spout/blob/master/Spout/AppDistribution/models.py
https://github.com/ridecharge/spout/blob/master/Spout/AppDistribution/admin.py

0👍

You should use django.forms.models.inlineformset_factory instead of formset_factory

👤Nik

Leave a comment