如何使用 GenericTabularInline 通过反向关系 add\get 管理中的数据?
How to add\get data in admin via reversed relation using GenericTabularInline?
我可以将 Criterias
添加到一个地方。如何将 Places
添加到标准?
型号:
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)
管理员 - PLACES 部分:
class PlaceCriteriasInlineAdmin(GenericTabularInline):
model = PlacesToCriterias
class PlacesAdmin(admin.ModelAdmin):
inlines = [PlaceCriteriasInlineAdmin]
admin.site.register(Places, PlacesAdmin)
在这种情况下,当我打开 Places
管理员更改页面时,我可以将 Criterias
项添加到我的 'place'。
管理员 - 条件部分:
class CriteriaPlacesInlineAdmin(GenericTabularInline):
model = PlacesToCriterias
class CriteriasAdmin(admin.ModelAdmin):
inlines = [CriteriaPlacesInlineAdmin]
admin.site.register(Criterias, CriteriasAdmin)
在这种情况下,当我打开 Criterias
管理员更改页面时,我无法将 Places
项目添加到我的 'criteria',因为我看到 places
而不是可能的criterias
.
如何在 Criterias
管理页面获取 Places
项?
这很容易。 GenericTabularInline
必须改为 admin.TabularInline
class CriteriaPlacesInlineAdmin(admin.TabularInline):
model = PlacesToCriterias
class CriteriasAdmin(admin.ModelAdmin):
inlines = [CriteriaPlacesInlineAdmin]
admin.site.register(Criterias, CriteriasAdmin)
如果有人需要获取包含所选对象的下拉列表,而不是 content_type
和 object_id
字段,解决方案是 。
我可以将 Criterias
添加到一个地方。如何将 Places
添加到标准?
型号:
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)
管理员 - PLACES 部分:
class PlaceCriteriasInlineAdmin(GenericTabularInline):
model = PlacesToCriterias
class PlacesAdmin(admin.ModelAdmin):
inlines = [PlaceCriteriasInlineAdmin]
admin.site.register(Places, PlacesAdmin)
在这种情况下,当我打开 Places
管理员更改页面时,我可以将 Criterias
项添加到我的 'place'。
管理员 - 条件部分:
class CriteriaPlacesInlineAdmin(GenericTabularInline):
model = PlacesToCriterias
class CriteriasAdmin(admin.ModelAdmin):
inlines = [CriteriaPlacesInlineAdmin]
admin.site.register(Criterias, CriteriasAdmin)
在这种情况下,当我打开 Criterias
管理员更改页面时,我无法将 Places
项目添加到我的 'criteria',因为我看到 places
而不是可能的criterias
.
如何在 Criterias
管理页面获取 Places
项?
这很容易。 GenericTabularInline
必须改为 admin.TabularInline
class CriteriaPlacesInlineAdmin(admin.TabularInline):
model = PlacesToCriterias
class CriteriasAdmin(admin.ModelAdmin):
inlines = [CriteriaPlacesInlineAdmin]
admin.site.register(Criterias, CriteriasAdmin)
如果有人需要获取包含所选对象的下拉列表,而不是 content_type
和 object_id
字段,解决方案是