Задать вопрос
@TitanFighter

Как получить в админке данные через обратную связь при использовании GenericTabularInline?

Я могу добавить "критерии" какому то "месту". Как добавить "места" какому то "критерию"?

Модели:
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)

Админка - Места:
class PlaceCriteriasInlineAdmin(GenericTabularInline):
    model = PlacesToCriterias

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

admin.site.register(Places, PlacesAdmin)

В данном случае, на странице редактирования "Места" я могу добавить "Критерии".

Админка - Критерии:
class CriteriaPlacesInlineAdmin(GenericTabularInline):
    model = PlacesToCriterias

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

admin.site.register(Criterias, CriteriasAdmin)

В данном случае, на странице редактирования "Критерия" я НЕ могу добавить "Места". Вместо возможного списка мест я вижу список критериев.

Как получить список мест на странице критерия?
  • Вопрос задан
  • 230 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
@TitanFighter Автор вопроса
Все оказалось очень просто - нужно было вместо GenericTabularInline использовать admin.TabularInline

class CriteriaPlacesInlineAdmin(admin.TabularInline):
    model = PlacesToCriterias

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

admin.site.register(Criterias, CriteriasAdmin)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
zelsky
@zelsky
ManyToManyField ?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы