简体   繁体   English

Django在管理页面中显示一对多关系

[英]Django displaying one to many relationship in the admin page

Database example: 数据库示例:

class Brand(models.Model):
  brand_name = models.CharField(max_length=30


class Model(models.Model):
  brand = models.ForeignKey(Brand)
  model_name =  models.CharField(max_length=30)

Now in admin 现在在管理员

admin.site.register(Brand)

class ModelAdmin(admin.ModelAdmin):
  list_display = ['brand', 'model_name']
  fields = ['model_name', 'brand']
admin.site.register(Model, ModelAdmin)

How can I show in the BrandAdmin page all the models that are associated with the one brand? 如何在BrandAdmin页面中显示与一个品牌关联的所有模型? As it stands right now, the Brand page only shows the brands, it doesn't show any of the models associated with it. 就目前而言,“品牌”页面仅显示品牌,不显示与其相关的任何模型。

Well, your best choice are django inlines 好吧,您最好的选择是Django内联

#admin.py    

class ModelAdmin(admin.ModelAdmin):
  list_display = ['brand', 'model_name']
  fields = ['model_name', 'brand']

class ModelInline(admin.TabularInline):
    model = Model

class BrandAdmin(admin.ModelAdmin):
    model = Brand
    inlines = [
        ModelInline,
    ]


admin.site.register(Brand, BrandAdmin)
admin.site.register(Model, ModelAdmin)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM