广告区

广告区


本站消息

站长简介/公众号

关注本站官方公众号:程序员总部,领取三大福利!
福利一:python和前端辅导
福利二:进程序员交流微信群,专属于程序员的圈子
福利三:领取全套零基础视频教程(python,java,前端,php)

  价值13000svip视频教程,python大神匠心打造,零基础python开发工程师视频教程全套,基础+进阶+项目实战,包含课件和源码

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

显示通过 ManyToMany 字段的字段 django admin

发布于2022-05-18 03:20     阅读(173)     评论(0)     点赞(6)     收藏(5)



我正在开发一个用 Python 2.7 和 Django 1.11 开发的项目。
我试图在管理页面中显示两个通过 ManyToMany 字段的字段。

这里的模型:

class ModelZero(Model):
    # some fields
    mtm_field = models.ManyToManyField(to="ModelOne", through="ModelTwo")

class ModelOne(Model):
    # some fields
    field_1_1 = models.CharField(unique=True, max_length=200)
    field_1_2 = models.BooleanField(default=True)

class ModelTwo(Model):
    # some fields
    field_2_1 = models.ForeignKey('ModelOne', on_delete=models.CASCADE)
    field_2_2 = models.BooleanField(default=True)

在 ModelZero 管理页面中,我想显示来自 ModelZero 本身的一些字段以及来自 ModelTwo 的 field_2_1 和 field_2_2。
更详细地说,field_2_1 应该使用自定义小部件呈现。
请注意 ModelZeroAdmin 是内联的。

这里是管理页面:

class ModelZeroAdmin(DynamicRawIDMixin, admin.TabularInline):
    model = ModelZero
    fields = ('some', 'fields', 'field_2_2')
    form = forms.ModelZeroForm

    def field_2_2(self, obj):
        return obj.mtm_field.through.field_2_2

这里的表格:

class ModelZeroForm(ModelForm):
    class Meta:
        widgets = {
            "mtm_field.through.field_2_1": dal.autocomplete.ModelSelect2Multiple(
                url="my-autocomplete-url"
            )
        }

这样我有两个错误:

  1. 无法在字段元组中添加自定义字段 (field_2_2)
  2. 未显示自定义小部件

有没有办法使用这种模型结构来实现这个目标?


解决方案


我没有使用旧 Django 版本的经验,但如果我没记错的话,管理界面中相关字段的语法将类似于 : mtm_field__field_2_2







所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:https://www.pythonheidong.com/blog/article/1523233/c83e77d0ffb4d0297617/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

6 0
收藏该文
已收藏

评论内容:(最多支持255个字符)