How to show related objects in Django/Admin?

前端 未结 3 1363
野的像风
野的像风 2021-02-07 02:19

I have 2 models:

from django.db import models

class Category(models.Model):
    icon = models.ImageField(upload_to = \'thing/icon/\')
    image = models.ImageFi         


        
相关标签:
3条回答
  • 2021-02-07 02:38

    You can use "Inlines" to visualize and edit Things of a certain Category in the admin detail for that category:

    In the admin.py file, create an Inline object for Thing (ThingInline) and modify your CategoryAdmin class to have an inline of type ThingInline like this:

    ...
    class ThingInline(admin.TabularInline):
        model = Thing
    
    class CategoryAdmin(admin.ModelAdmin):
        inlines = [
            ThingInline,
        ]
    ...
    

    For further details, this is the docs for admin inlines: https://docs.djangoproject.com/en/dev/ref/contrib/admin/#inlinemodeladmin-objects

    0 讨论(0)
  • 2021-02-07 02:47

    Few minutes ago, searching how to solve a similar problem, I finally found a solution.

    You actually have to follow @Matteo Scotuzzi answer as well, then

    Inside admin.py located in the app your created those models, you have to declare as follows right bellow @Matteo snippet:

    admin.site.register(Category, CategoryAdmin)
    

    and that would be enough to make all "Things" appear in "Category" inside your Django Administration respective page which is "Category".

    0 讨论(0)
  • 2021-02-07 02:54

    update admin.py file like this.

    from django.contrib import admin
    from .views import Category, Thing
    
    class CategoryAdmin(admin.ModelAdmin):
        inlines = [
            ThingInline,
        ]
    
    class ThingInline(admin.TabularInline):
        model = Thing
    
    admin.site.register(Category, CategoryAdmin) 
    admin.site.register(Thing)
    

    There are two inline options TabularInline and StackedInline

    0 讨论(0)
提交回复
热议问题