I can add "criteria" to some "place". How to add "places" to some "criterion"?

Models:

class Criterias(models.Model): name = ... class Places(models.Model): name = ... class PlacesToCriterias(models.Model): content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE) object_id = models.PositiveIntegerField() content_object = GenericForeignKey() criteria_group = models.ForeignKey(Criterias) 

Admin - Places:

 class PlaceCriteriasInlineAdmin(GenericTabularInline): model = PlacesToCriterias class PlacesAdmin(admin.ModelAdmin): inlines = [PlaceCriteriasInlineAdmin] admin.site.register(Places, PlacesAdmin) 

In this case, on the "Places" page I can add "Criteria".

Admin - Criteria:

 class CriteriaPlacesInlineAdmin(GenericTabularInline): model = PlacesToCriterias class CriteriasAdmin(admin.ModelAdmin): inlines = [CriteriaPlacesInlineAdmin] admin.site.register(Criterias, CriteriasAdmin) 

In this case, on the Criteria edit page, I can’t add Places. Instead of a possible list of places, I see a list of criteria.

How to get a list of places on the criteria page?

    1 answer 1

    Everything turned out to be very simple - it was necessary to use admin.TabularInline instead of GenericTabularInline admin.TabularInline

     class CriteriaPlacesInlineAdmin(admin.TabularInline): model = PlacesToCriterias class CriteriasAdmin(admin.ModelAdmin): inlines = [CriteriaPlacesInlineAdmin] admin.site.register(Criterias, CriteriasAdmin) 

    If someone needs to bring it all out beautifully - instead of the fields content_type and object_id output the object directly, you are here .