Django1.5上的admin中的自定义用户模型

2024-05-17 04:33:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我在django1.5应用程序中使用自定义用户模型myapp.MyUser。我按照文档中的说明更新了设置,AUTH_USER_MODEL = "myapp.MyUser"。在MyUser扩展AbstractUser时,我用以下代码创建了admin:

from django.contrib.auth import get_user_model
from django.contrib.auth.admin import UserAdmin

admin.site.register(get_user_model(), UserAdmin)

除了创造形式外,它的效果很好。尝试创建新用户时,会引发以下异常:

^{pr2}$

完整的回溯可以找到here。在

挖掘出Django的源代码看起来像是UserCreationForm(由UserAdmin使用)引用了Django的内置auth.Userdirectly,而不是使用get_user_model。在

会是问题吗?为什么所有东西都引用myapp.MyUser,包括管理员的身份验证和更改表单,除了创建?在


Tags: django用户fromimportauth应用程序getmodel
1条回答
网友
1楼 · 发布于 2024-05-17 04:33:48

请使用Byte.parseByte(String)执行此操作:

public static byte[] toByteArray(String[] arr) {
    byte[] res = new byte[arr.length];

    for (int i = 0; i < arr.length; i++)
        res[i] = Byte.parseByte(arr[i]);

    return res;
}

p.S.Java中,字节值是[-128;128)。因此"128"将抛出java.lang.NumberFormatException: Value out of range. Value:"128" Radix:10。您必须决定要对这些值执行什么操作:抛出异常,因为使用数据无效;或者将其转换为最接近的字节值,如"128" -> 127;或者甚至忽略这些值。此代码可能如下所示:

public static byte[] toByteArray(String[] arr) {
    byte[] res = new byte[arr.length];

    for (int i = 0; i < arr.length; i++) {
        try {
            res[i] = Byte.parseByte(arr[i]);    
        } catch(Exception e) {
            res[i] = // TODO action for incorrect value
        }
    }

    return res;
}

相关问题 更多 >