首页 > 解决方案 > Django 自定义组模型

问题描述

默认情况下,在 django 中,组模型的名称为 unique=True。是否可以删除此属性以及如何删除?它有什么重大后果吗?

标签: djangomodel

解决方案


最好在组的名称前加上一些独特的东西,而不是试图让它不独特。默认情况下,DjangoGroup.name将其用作自然键,用于序列化目的。

您可以通过在显示期间执行某些操作来解决显示问题,例如:

def get_group_name(group):
    if "|" in group.name:
        return group.name.split("|")[1]
    return group.name

group = Group.objects.create(name="COMPANY_X|Sales")
print(get_group_name(group))
# Sales

您仍然可以定义自己的 Group 模型,但它需要非常显着地自定义您的用户模型,这是很多工作,并且可能仍然存在依赖于 Django 内部的 Group 名称唯一性的东西。


推荐阅读