如何从django admin的同一页面插入多个表/模型的数据?

时间:2015-09-16 07:48:33

标签: python django django-models django-admin

我是Django的新手,正在研究我项目的管理部分。下面是models.py的代码。

class Shops(models.Model):
    name = models.CharField(max_length=200)
    description = models.CharField(max_length=1500)
    address = models.CharField(max_length=1000)
    location = models.CharField(max_length=100)
    contact_number = models.IntegerField()
    other_details = models.CharField(max_length=100,null='true')

    def __str__(self):              # __unicode__ on Python 2
        return (self.name)

class Shop_Type(models.Model):
    category = models.CharField(max_length=500)

    def __str__(self):              # __unicode__ on Python 2
        return (self.category)

class Shop_Category(models.Model):
    shop_id = models.ForeignKey(Shops)
    category_id = models.ForeignKey(Shop_Type)

现在我想显示在" Shops"中插入数据的选项。和" Shop_Category"管理模块的单个页面中的表,因为它们都连接在一起。我提到this问题,但未能实现我想要的。以下是我使用的admin.py的代码:

class ShopCatAdmin(admin.ModelAdmin):
    model = Shop_category

class ShopsAdmin(admin.ModelAdmin):
    inlines = [ShopCatAdmin]

admin.site.register(Shops, ShopsAdmin)

抛出一些属性错误,说 - "' ShopCatAdmin'对象没有属性' get_formset'"

如果有人能帮助我解决这个问题,那就太好了。

提前致谢:)

1 个答案:

答案 0 :(得分:1)

您需要将ShopCatAdmin定义为继承内联管理员类,而不是基本管理员。

class ShopCatAdmin(admin.TabularInline):
    model = Shop_Category

(注意,Python样式不鼓励类名中的下划线;您的模型应该称为ShopType和ShopCategory。)