当前位置: 首页 > 知识库问答 >
问题:

无法将关键字“is_active”解析到字段中?选项包括:活动、管理员、电子邮件、全名、id等

毕胡非
2023-03-14

切换到django自定义用户模型后,重置密码不起作用,并显示这些错误。。。。

内部服务器错误: /password-reset/Traceback(最近的调用最后):

文件“/home/nasrullah/.local/lib/python3.6/site packages/django/core/handlers/exception.py”,第34行,内部响应=get_响应(请求)

file"/home/nasullah/. local/lib/python3.6/site-包/django/core/处理程序/base.py",第126行,_get_response响应=self.process_exception_by_middleware(e,请求)

文件“/home/nasrullah/.local/lib/python3.6/site packages/django/core/handlers/base.py”,第124行,在"获取"响应=包装"回调中(请求,*回调参数,**回调"

文件“/home/nasrullah/.local/lib/python3.6/site packages/django/views/generic/base.py”,第68行,在视图中返回self。调度(请求,*args,**kwargs)

文件“/home/nasrullah/.local/lib/python3.6/site packages/django/utils/decorators.py”,第45行,在包装返回绑定方法(*args,**kwargs)中

文件“/home/nasrullah/.local/lib/python3.6/site packages/django/utils/decorators.py”,第142行,在_-wrapped_-view-response=view_-func中(请求,*args,**kwargs)

文件“/home/nasrullah/.local/lib/python3.6/site packages/django/db/models/sql/query.py”,第1263行,在add\u q子句中,\uq=self_添加_q(q_对象,自身使用的_别名)

文件“/home/nasrullah/.local/lib/python3.6/site packages/django/db/models/sql/query.py”,第1287行,在_add_q split_subq=split_subq中,

file"/home/nasullah/. local/lib/python3.6/site-包/django/db/模型/sql/query.py",第1164行,build_filter查找,零件,reffed_expression=self.solve_lookup_type(arg)

文件“/home/nasrullah/.local/lib/python3.6/site packages/django/db/models/sql/query.py”,第1028行,在solve\u lookup\u type\u中,字段,\u,lookup\u parts=self。命名到路径(查找被拆分,self.get\u meta())

文件“/home/nasrullah/.local/lib/python3.6/site packages/django/db/models/sql/query.py”,

第1389行,在names_to_path“中的选项是:%s”%(name),“,”。join(可用)))django。果心例外情况。FieldError:无法解析关键字“是否处于活动状态”

到田野里去。选项包括:活动、管理、电子邮件、全名、id、图像、,

last_login,登录,密码,帖子,人员,时间戳[01/Feb/2020

13:03:45]“POST/密码重置/HTTP/1.1”500 149279

网址。派克

from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
from django.contrib.auth import views as auth_views
from users import views as user_views


urlpatterns = [
    path('admin/', admin.site.urls),
    path('register/', user_views.register, name='register'),
    path('profile/', user_views.profile, name='profile'),
    #path('login/',auth_views.LoginView.as_view(template_name= 'users/login.html'), name='login'),
    path('login/',user_views.login_page, name='login'),
    path('logout/', auth_views.LogoutView.as_view(template_name='users/logout.html'), name='logout'),
    path('password-reset/',
             auth_views.PasswordResetView.as_view(
             template_name='users/password_reset.html'
         ),
         name='password_reset'),
    path('password-reset/done/',
             auth_views.PasswordResetDoneView.as_view(
             template_name='users/password_reset_done.html'
         ),
         name='password_reset_done'),
    path('password-reset-confirm/<uidb64>/<token>/',
             auth_views.PasswordResetConfirmView.as_view(
             template_name='users/password_reset_confirm.html'
         ),
         name='password_reset_confirm'),
    path('password-reset-complete/',
             auth_views.PasswordResetCompleteView.as_view(
             template_name='users/password_reset_complete.html'
         ),
         name='password_reset_complete'),
    path('', include('blog.urls')),

]

模型。派克

from django.db import models
from PIL import Image
from django.conf import settings
from django.contrib.auth.models import (
     AbstractBaseUser, BaseUserManager
)

class UserManager(BaseUserManager):

    def create_user(self, email, full_name, password, is_active=True,is_staff=False,is_admin=False):
        """
        Creates and saves a User with the given email and password.
        """
        if not email:
            raise ValueError('Users must have an email address')
        if not password:
            raise ValueError('Users must have a password')

        if not full_name:
            raise ValueError('Users must have a full name')

        user = self.model(
            email=self.normalize_email(email),
        )
        user.active = True
        user.set_password(password)
        user.save(using=self._db)
        return user

    def create_staffuser(self, email, full_name, password):
        """
        Creates and saves a staff user with the given email and password.
        """
        user = self.create_user(
            email,
            full_name,
            password=password,
        )
        user.staff = True
        user.save(using=self._db)
        return user

    def create_superuser(self, email, full_name, password):
        """
        Creates and saves a superuser with the given email and password.
        """
        user = self.create_user(
            email,
            full_name,
            password=password,
        )
        user.staff = True
        user.admin = True
        user.save(using=self._db)
        return user

class User(AbstractBaseUser):
    email    = models.EmailField(
            verbose_name='email address',
            max_length=255,
            unique=True,
        )
    full_name = models.CharField(max_length=255, blank=True, null=True)
    image = models.ImageField(default='default.jpg', upload_to='profile_pics/')
    active    = models.BooleanField(default=True)
    staff      = models.BooleanField(default=False)
    admin   = models.BooleanField(default=False)
    timestamp =models.DateTimeField(auto_now_add=True)


    USERNAME_FIELD = 'email'
    REQUIRED_FIELDS = ['full_name']

    objects = UserManager()

    def __str__(self):
        return self.email
    def save(self, *args, **kwargs):
        super(User, self).save(*args, **kwargs)


        img = Image.open(self.image.path)

        if img.height > 300 or img.width > 300:
            output_size = (300, 300)
            img.thumbnail(output_size)
            img.save(self.image.path)

    def get_full_name(self):
        if self.full_name:
            return self.full_name
        return self.email

    def get_short_name(self):
        return self.email




    @property
    def is_staff(self):
        return self.staff

    def has_perm(self, perm, obj=None):
       return self.is_admin

    def has_module_perms(self, app_label):
       return self.is_admin

    @property
    def is_admin(self):
        return self.admin

    @property
    def is_active(self):
        return self.active



class GuestEmail(models.Model):
    email = models.EmailField()
    active = models.BooleanField(default=True)
    update = models.DateTimeField(auto_now=True)
    timestamp = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.email

共有1个答案

屠振濂
2023-03-14

在某个地方(在您未包含的代码中,views.py很可能是),您正试图通过字段过滤或查询用户模型。但是,该字段在模型上不存在,它是模型的属性,因此无法解析。

阅读错误消息,它会准确地告诉您:

Cannot resolve keyword 'is_active' into field.
Choices are: active, admin, email, full_name, id, image, last_login, logentry, password, post, staff, timestamp

这些是User上的字段,因此这些字段可用于查询该模型。

因此,确保传递给查询的in参数(无论发生在何处)使用active而不是is\u active,并且应该成功。

 类似资料:
  • 我在wordpress网站上安装了签出字段编辑器。我创建了自定义字段。但是,使用以下代码,PCCustomer字段将同时出现在发送给我和客户的“新订单”电子邮件中。相反,我希望它完全属于我。我试着编辑代码,但仍然不起作用。

  • 首先,我正在发送电子邮件给数量的客户,可能会像16000封邮件,不幸的是,我发现问题在我的自定义字体。我不能加载到我的邮件页面。我试过这个: With link tag in HTML 不要告诉我让它成为图像,因为我不能,原因是邮件表单将通过PHP生成。 任何帮助都将不胜感激。

  • 我认为正确的排序结果应该是: jack@gmail.com jack1@gmail.com 配置如下: 这是字段定义: 这是字段类型定义:

  • 当我们收到一条包含收件人互联网地址(包含方括号)的mimessage时,我们得到了javax。邮政互联网AddressException:当我们调用MimeMessage时,本地地址在字符串中包含非法字符。getAllRecipients()。 下面的电子邮件地址是我们收到上述例外情况的一个示例:

  • 我有一个奇怪的要求。我必须在我的数据库中找到重复的联系人记录(应该很简单),我的问题是我必须按名字、姓氏和任何相互匹配的电子邮件字段进行匹配。 在本例中,我需要确定第1行和第2行中的John Smith是重复记录,但第3行中不是。基本上,我需要查询与FirstName匹配的FirstName、与LastName匹配的LastName以及与任何字段匹配的任何电子邮件字段。。。这可能吗? 我得到这个是

  • 因此,我一直在使我的邮递员收藏尽可能动态,替换所有在不同的API调用变量期间仅略有变化的静态内容,以大大减少工作量。 我还剩下一件事,我就是无法开始工作,那就是使用变量构建JSON主体的部分。 这是我想要的结果,右边的关键值工作得很好: 我想让我的所有json数组的前缀都是动态的,如下所示: 我不能在JSON正文中使用JS函数,因此我只能转义(所以使用“”“”) 我试着做这样的事情: 但最终,这产