如何更改 dumpdata 命令输出夹具中权限字段的格式?

Posted

技术标签:

【中文标题】如何更改 dumpdata 命令输出夹具中权限字段的格式?【英文标题】:How do I change the format of the permissions field in the outputted fixture for the dumpdata command? 【发布时间】:2021-09-23 23:47:47 【问题描述】:

当我使用 dumpdata 命令为用户组创建数据夹具时:

python manage.py dumpdata auth.Group --indent 4 > fixtures.json

我以以下格式获取权限的ID(23、25、26):


    "model": "auth.group",
    "pk": 7,
    "fields": 
        "name": "Subscribers",
        "permissions": [
            23,
            25,
            26 
        ]
    

我如何让它在权限字段中采用以下格式?


    "model": "auth.group",
    "pk": 7,
    "fields": 
        "name": "Subscribers",
        "permissions": [
            ["add_location", "main", "location"],
            ["change_location", "main", "location"],
            ["delete_location", "main", "location"]
        ]
    

我查阅了文档,但找不到任何内容。

【问题讨论】:

【参考方案1】:

要在使用dumpdata 命令进行序列化时使用外键模型的自然键((codename, app_label, model)Permission 模型的自然键),您需要使用--natural-foreign flag,如文档中所述:

python manage.py dumpdata auth.Group --natural-foreign --indent 4 > fixtures.json

【讨论】:

以上是关于如何更改 dumpdata 命令输出夹具中权限字段的格式?的主要内容,如果未能解决你的问题,请参考以下文章