为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

HUX布斯 2021-10-12 10:42:45
是否可以将多个管理类注册到同一个模型?我想让 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.titleclass MyPost(Post):    class Meta:        proxy = True
查看完整描述

2 回答

?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

在 的这种特定情况下SummernoteModelAdmin,您可以使用多重继承来创建单个管理类,而不是使用代理模型:


class MyPostAdmin(SummernoteModelAdmin, admin.ModelAdmin):

    summernote_fields = ('text', )

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


admin.site.register(Post, PostAdmin)


查看完整回答
反对 回复 2021-10-12
?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

原来我不需要制作代理模型。我通过将 prepopulated_fields 变量添加到 MyPostAdmin 类来解决这个问题


查看完整回答
反对 回复 2021-10-12
  • 2 回答
  • 0 关注
  • 226 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信