如何更改 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 命令输出夹具中权限字段的格式?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 call_command 和 dumpdata 命令将 json 保存到文件
由于夹具错误,Django datadump 和 loaddata 无法正常工作