0

I can add Criterias to a place. How can I add Places to a criteria?

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 part:

class PlaceCriteriasInlineAdmin(GenericTabularInline):
    model = PlacesToCriterias

class PlacesAdmin(admin.ModelAdmin):
    inlines = [PlaceCriteriasInlineAdmin]

admin.site.register(Places, PlacesAdmin)

In this case, when I open Places admin change page, I can add Criterias items to my 'place'.

Admin - CRITERIAS part:

class CriteriaPlacesInlineAdmin(GenericTabularInline):
    model = PlacesToCriterias

class CriteriasAdmin(admin.ModelAdmin):
    inlines = [CriteriaPlacesInlineAdmin]

admin.site.register(Criterias, CriteriasAdmin)

In this case, when I open Criterias admin change page, I CAN NOT add Places item to my 'criteria', because instead of possible places I see criterias.

How to get Places items at Criterias admin page?

TitanFighter
  • 4,582
  • 3
  • 45
  • 73

1 Answers1

0

It was quite easy. GenericTabularInline must be changed to admin.TabularInline

class CriteriaPlacesInlineAdmin(admin.TabularInline):
    model = PlacesToCriterias

class CriteriasAdmin(admin.ModelAdmin):
    inlines = [CriteriaPlacesInlineAdmin]

admin.site.register(Criterias, CriteriasAdmin)

If anyone needs to get dropdown list with selected object, instead of content_type and object_id fields, the solution is here.

Community
  • 1
  • 1
TitanFighter
  • 4,582
  • 3
  • 45
  • 73