Django Admin:将多个管理类注册到同一个模型

是否可以将多个管理类注册到同一个模型?我想让 PostAdmin 和 MyPostAdmin 都注册到 Post 模型。现在我正尝试在 MyPost 中使用代理模型,但它在管理面板中为我提供了两个不同的模型,它们具有独立的功能。


管理.py:


class PostAdmin(admin.ModelAdmin):

    prepopulated_fields = {'slug':('title',)}


class MyPostAdmin(SummernoteModelAdmin):

    summernote_fields = ('text', )


admin.site.register(Post, PostAdmin)

admin.site.register(MyPost, MyPostAdmin)

模型.py:


class Post(models.Model):

    title = models.CharField(max_length=250)

    category = models.IntegerField(choices=category_choices, default=0)

    description = models.TextField(max_length=250, blank=True, null=True)

    text = models.TextField()

    thumbnail = models.ImageField(upload_to=settings.MEDIA_URL)

    created_date = models.DateTimeField(default=timezone.now)

    published_date = models.DateTimeField(blank=True, null=True)

    slug = models.SlugField(unique=True)


    def publish(self):

        self.published_date = timezone.now()

        self.save()


    def save(self, *args, **kwargs):

        self.slug = slugify(self.title)

        super(Post, self).save(*args, **kwargs)


    def __str__(self):

        return self.title



class MyPost(Post):


    class Meta:

        proxy = True


HUX布斯
浏览 227回答 2
2回答

江户川乱折腾

在 的这种特定情况下SummernoteModelAdmin,您可以使用多重继承来创建单个管理类,而不是使用代理模型:class MyPostAdmin(SummernoteModelAdmin, admin.ModelAdmin):    summernote_fields = ('text', )    prepopulated_fields = {'slug':('title',)}admin.site.register(Post, PostAdmin)

宝慕林4294392

原来我不需要制作代理模型。我通过将 prepopulated_fields 变量添加到 MyPostAdmin 类来解决这个问题
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python