码迷,mamicode.com
首页 > 其他好文 > 详细

Django Admin Cookbook-23如何在Django admin中添加嵌套的内联

时间:2020-01-13 14:27:31      阅读:105      评论:0      收藏:0      [点我收藏+]

标签:logs   添加   如何   delete   更改   获得   self   pytho   asc   

23.如何在Django admin中添加嵌套的内联?

假设我们定义了以下模型:

class Category(models.Model):
    ...
class Hero(models.Model):
    category = models.ForeignKey(Catgeory)
    ...
class HeroAcquaintance(models.Model):
    hero = models.OneToOneField(Hero, on_delete=models.CASCADE)
    ...

你想拥有一个管理页面来同时创建Category、Hero和HeroAcquaintance对象。但是,Django不支持跨多个级别的外键或一对一关系嵌套内联。有以下几种处理方法,

我们可以更改HeroAcquaintance模型,使其直接外联到到Category,代码如下:

class HeroAcquaintance(models.Model):
    hero = models.OneToOneField(Hero, on_delete=models.CASCADE)
    category = models.ForeignKey(Category)
    def save(self, *args, **kwargs):
        self.category = self.hero.category
        super().save(*args, **kwargs)

然后,你可以附加HeroAcquaintanceInline内联到CategoryAdmin,并获得一种嵌套的内联。

另外,也有一些第三方Django插件允许嵌套内联。在Github或DjangoPackages中搜索可以快速将找到适合适合你需要的三方插件。

返回目录

Django Admin Cookbook-23如何在Django admin中添加嵌套的内联

标签:logs   添加   如何   delete   更改   获得   self   pytho   asc   

原文地址:https://www.cnblogs.com/superhin/p/12186997.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!