删除对象时出现奇怪的行为

时间:2015-08-11 08:46:41

标签: python django django-models django-admin

我有以下django模型:

客户

class Customer(BaseModel):
    """
    Represents company
    """
    company_name = models.CharField(_("Company name"), max_length=128)

配置文件

class Profile(BaseModel):
    """
    Model used to extend builtin user information
    """
    user = models.OneToOneField(User)

ProfilePermission ,用于存储有关访问级别的m2m信息(每个配置文件可以访问具有不同访问级别的多个客户)。

class ProfilePermission(BaseModel):
    """
    M2M model used to assign a users (profiles) to the customers
    """
    profile = models.ForeignKey(Profile, blank=True, null=True, on_delete=models.SET_NULL)
    customer = models.ForeignKey(Customer, blank=True, null=True, on_delete=models.SET_NULL)
    access_level = models.CharField(_("Access level"),max_length=16,
                                    choices=ACCESS_LEVELS, default="admin")

当我尝试删除 ProfilePermission 实例(使用.delete()方法)时出现问题。它工作正常 - 删除ProfilePermission而不触及它的外键字段 - 客户和个人资料。

然而,当具有Profile外键的用户登录时,魔术开始。

当他登录时,我正在尝试删除 ProfilePermission django也希望删除相关的个人资料客户。< / p>

非常奇怪。它在django bultin管理应用程序和我们的自定义仪表板中都表现出来。有什么想法吗?

0 个答案:

没有答案