无法将关键字“用户名”解析为字段。选项有:城市、身份证、电话等

2024-01-12

我想就这些问题寻求帮助。我确实知道这似乎与同一问题的其他问题相似,但我环顾四周,发现没有什么可以真正解决我的问题。顺便说一句,这是我第二次在这里提问,所以请告诉我这条消息是否太长。谢谢!

我将 AllAuth 与 Django 1.8 和 Python 3.5 一起使用

我想根据 AllAuth 提供的用户名实现一个简单的个人资料页面。问题是,我没有在模型中指定用户名或电子邮件字段,我只是对其进行了扩展以添加一些我想要的信息,但 Django 似乎只识别了我扩展的字段,并且我无法找到从 AllAuth 获取该信息的正确方法。

这是我的代码(一些自定义字段是葡萄牙语,但所有核心内容都是英语):

配置文件/models.py

from django.conf import settings
from django.db import models
from django.db.models.signals import post_save
from django.utils.encoding import smart_text

UF_CHOICES = (
    ('SP', 'SP'),
    ('RJ', 'RJ')
)

class Profile(models.Model):
    user = models.OneToOneField(settings.AUTH_USER_MODEL)

    uf = models.CharField(
                        max_length = 2,
                        blank=False,
                        default = 'SP',
                        choices = UF_CHOICES,
                        verbose_name = 'UF',
                        )
    cidade = models.CharField(max_length=120, null=True, blank=True, default="Rio de Janeiro")
    telefone = models.CharField(max_length = 20, blank=True, null=True, verbose_name = 'Telefone para Contato')

    def __str__(self):
        return smart_text(self.user)



def post_save_user_model_receiver(sender, instance, created, *args, **kwargs):
    if created:
        try:
            Profile.objects.create(user=instance)
        except:
            pass

post_save.connect(post_save_user_model_receiver, sender=settings.AUTH_USER_MODEL)

配置文件/forms.py

from django import forms
from .models import Profile

class ProfileForm(forms.ModelForm):
    class Meta:
        model = Profile
        fields = [
            "uf",
            "cidade",
            "telefone",
        ]

    def profile(self, request, user):
        user.uf = self.cleaned_data['uf']
        user.cidade = self.cleaned_data['cidade']
        user.telefone = self.cleaned_data['telefone']
        user.save()

配置文件/admin.py

from django.contrib import admin

# Register your models here.

from .models import Profile

admin.site.register(Profile)

配置文件/views.py

from django.contrib.auth.decorators import login_required
from django.shortcuts import render, get_object_or_404
from .models import Profile

# Create your views here.

@login_required
def profile_detail(request, username=None):
    obj = get_object_or_404(Profile, username=username)
    context = {
        "object": obj,
    }
    template = 'profile_detail.html'
    return render(request, template, context)

配置文件/适配器.py[注意,这里显示了用户名]就像文档指定的那样:http://django-allauth.readthedocs.io/en/latest/advanced.html http://django-allauth.readthedocs.io/en/latest/advanced.html

from django.conf import settings
from allauth.account.adapter import DefaultAccountAdapter

class MyAccountAdapter(DefaultAccountAdapter):

    def get_login_redirect_url(self, request):
        path = "/profiles/{username}/"
        return path.format(username=request.user.username)

配置文件/urls.py

from django.conf.urls import url
from .views import profile_detail

urlpatterns = [

    url(r'^(?P<username>[\w.@+-]+)/$', profile_detail, name='profile_detail'),
]

最后,报错信息:

Environment:


Request Method: GET
Request URL: http://localhost:8000/profiles/Sofia/

Django Version: 1.8.17
Python Version: 3.5.2
Installed Applications:
('django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.sites',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'allauth',
 'allauth.account',
 'allauth.socialaccount',
 'allauth.socialaccount.providers.facebook',
 'crispy_forms',
 'newsletter',
 'profiles',
 'properties')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware',
 'django.middleware.security.SecurityMiddleware')


Traceback:
File "/Users/Alex/Desktop/Hunters/lib/python3.5/site-packages/django/core/handlers/base.py" in get_response
  132.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/Users/Alex/Desktop/Hunters/lib/python3.5/site-packages/django/contrib/auth/decorators.py" in _wrapped_view
  22.                 return view_func(request, *args, **kwargs)
File "/Users/Alex/Desktop/Hunters/src/profiles/views.py" in profile_detail
  9.     obj = get_object_or_404(Profile, username=username)
File "/Users/Alex/Desktop/Hunters/lib/python3.5/site-packages/django/shortcuts.py" in get_object_or_404
  155.         return queryset.get(*args, **kwargs)
File "/Users/Alex/Desktop/Hunters/lib/python3.5/site-packages/django/db/models/query.py" in get
  325.         clone = self.filter(*args, **kwargs)
File "/Users/Alex/Desktop/Hunters/lib/python3.5/site-packages/django/db/models/query.py" in filter
  679.         return self._filter_or_exclude(False, *args, **kwargs)
File "/Users/Alex/Desktop/Hunters/lib/python3.5/site-packages/django/db/models/query.py" in _filter_or_exclude
  697.             clone.query.add_q(Q(*args, **kwargs))
File "/Users/Alex/Desktop/Hunters/lib/python3.5/site-packages/django/db/models/sql/query.py" in add_q
  1310.         clause, require_inner = self._add_q(where_part, self.used_aliases)
File "/Users/Alex/Desktop/Hunters/lib/python3.5/site-packages/django/db/models/sql/query.py" in _add_q
  1338.                     allow_joins=allow_joins, split_subq=split_subq,
File "/Users/Alex/Desktop/Hunters/lib/python3.5/site-packages/django/db/models/sql/query.py" in build_filter
  1150.         lookups, parts, reffed_expression = self.solve_lookup_type(arg)
File "/Users/Alex/Desktop/Hunters/lib/python3.5/site-packages/django/db/models/sql/query.py" in solve_lookup_type
  1036.         _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta())
File "/Users/Alex/Desktop/Hunters/lib/python3.5/site-packages/django/db/models/sql/query.py" in names_to_path
  1397.                                      "Choices are: %s" % (name, ", ".join(available)))

Exception Type: FieldError at /profiles/Sofia/
Exception Value: Cannot resolve keyword 'username' into field. Choices are: cidade, id, telefone, uf, user, user_id

好吧,我发现了这个问题。我花了很长时间,因为我没有以正确的方式看待它。

问题不在于代码本身,更多的是哪个模型实际存储了我需要的信息。在本例中,我想从数据库中获取用户和配置文件信息,但没有意识到它们是两个独立的模块。我试图从用户存储的个人资料信息中获取。

原文是:

profile.views.py(旧的且错误的)

from django.contrib.auth.decorators import login_required
from django.shortcuts import render, get_object_or_404
from .models import Profile

# Create your views here.

@login_required
def profile_detail(request, username=None):
    obj = get_object_or_404(Profile, username=username)
    context = {
        "object": obj,
    }
    template = 'profile_detail.html'
    return render(request, template, context)

profile.views.py(新的和工作的)——注意导入如何从 Profile 更改为 User 以及我如何从 obj.profile 创建新用户 obj

from django.contrib.auth.decorators import login_required
from django.contrib.auth.models import User
from django.shortcuts import render, get_object_or_404

# Create your views here.

@login_required
def profile_detail(request, username=None):
    obj = get_object_or_404(User, username=username)
    user = obj.profile
    context = {
        "object": obj,
        "user": user,
    }
    template = 'profile_detail.html'
    return render(request, template, context)

非常感谢您的帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法将关键字“用户名”解析为字段。选项有:城市、身份证、电话等 的相关文章

  • Django 的内联管理:一个“预填充”字段

    我正在开发我的第一个 Django 项目 我希望用户能够在管理中创建自定义表单 并向其中添加字段当他或她需要它们时 为此 我在我的项目中添加了一个可重用的应用程序 可在 github 上找到 https github com stephen
  • 使用特定的类/函数预加载 Jupyter Notebook

    我想预加载一个笔记本 其中包含我在另一个文件中定义的特定类 函数 更具体地说 我想用 python 来做到这一点 比如加载一个配置文件 包含所有相关的类 函数 目前 我正在使用 python 生成笔记本并在服务器上自动启动它们 因为不同的
  • Python zmq SUB 套接字未接收 MQL5 Zmq PUB 套接字

    我正在尝试在 MQL5 中设置一个 PUB 套接字 并在 Python 中设置一个 SUB 套接字来接收消息 我在 MQL5 中有这个 include
  • 使用字典映射数据帧索引

    为什么不df index map dict 工作就像df column name map dict 这是尝试使用index map的一个小例子 import pandas as pd df pd DataFrame one A 10 B 2
  • 如何使用 Pandas、Numpy 加速 Python 中的嵌套 for 循环逻辑?

    我想检查一下表的字段是否TestProject包含了Client端传入的参数 嵌套for循环很丑陋 有什么高效简单的方法来实现吗 非常感谢您的任何建议 def test parameter a list parameter b list g
  • datetime.datetime.now() 返回旧值

    我正在通过匹配日期查找 python 中的数据存储条目 我想要的是每天选择 今天 的条目 但由于某种原因 当我将代码上传到 gae 服务器时 它只能工作一天 第二天它仍然返回相同的值 例如当我上传代码并在 07 01 2014 执行它时 它
  • Python 2:SMTPServerDisconnected:连接意外关闭

    我在用 Python 发送电子邮件时遇到一个小问题 me my email address you recipient s email address me email protected cdn cgi l email protectio
  • 如何通过 TLS 1.2 运行 django runserver

    我正在本地 Mac OS X 机器上测试 Stripe 订单 我正在实现这段代码 stripe api key settings STRIPE SECRET order stripe Order create currency usd em
  • javascript 是否有等效的 __repr__ ?

    我最接近Python的东西repr这是 function User name password this name name this password password User prototype toString function r
  • Jupyter Notebook 找不到 Python 模块

    不知道发生了什么 但每当我使用 ipython 氢 原子 或 jupyter 笔记本时都找不到任何已安装的模块 我知道我安装了 pandas 但笔记本说找不到 我应该补充一点 当我正常运行脚本时 python script py 它确实导入
  • Python3 在 DirectX 游戏中移动鼠标

    我正在尝试构建一个在 DirectX 游戏中执行一些操作的脚本 除了移动鼠标之外 我一切都正常 是否有任何可用的模块可以移动鼠标 适用于 Windows python 3 Thanks I used pynput https pypi or
  • 仅第一个加载的 Django 站点有效

    我最近向 stackoverflow 提交了一个问题 标题为使用mod wsgi在apache上多次请求后Django无限加载 https stackoverflow com questions 71705909 django infini
  • 如何在 Windows 命令行中使用参数运行 Python 脚本

    这是我的蟒蛇hello py script def hello a b print hello and that s your sum sum a b print sum import sys if name main hello sys
  • Django 模型:默认日期时间未转换为 SQL CURRENT_TIMESTAMP

    我正在使用 Django 模型创建 PostgreSQL DB 我有一个 DateTimeField 我想将当前时间戳设置为默认值 我知道有多个消息来源建议如何做到这一点 但是 当我在 Django 之外检查数据库时 默认时间戳不会显示 我
  • 实现 XGboost 自定义目标函数

    我正在尝试使用 XGboost 实现自定义目标函数 在 R 中 但我也使用 python 所以有关 python 的任何反馈也很好 我创建了一个返回梯度和粗麻布的函数 它工作正常 但是当我尝试运行 xgb train 时它不起作用 然后 我
  • 将 Python 中的日期与日期时间进行比较

    所以我有一个日期列表 datetime date 2013 7 9 datetime date 2013 7 12 datetime date 2013 7 15 datetime date 2013 7 18 datetime date
  • 模拟pytest中的异常终止

    我的多线程应用程序遇到了一个错误 主线程的任何异常终止 例如 未捕获的异常或某些信号 都会导致其他线程之一死锁 并阻止进程干净退出 我解决了这个问题 但我想添加一个测试来防止回归 但是 我不知道如何在 pytest 中模拟异常终止 如果我只
  • cv2.VideoWriter:请求一个元组作为 Size 参数,然后拒绝它

    我正在使用 OpenCV 4 0 和 Python 3 7 创建延时视频 构造 VideoWriter 对象时 文档表示 Size 参数应该是一个元组 当我给它一个元组时 它拒绝它 当我尝试用其他东西替换它时 它不会接受它 因为它说参数不是
  • Kivy - 单击按钮时编辑标签

    我希望 Button1 在单击时编辑标签 etykietka 但我不知道如何操作 你有什么想法吗 class Zastepstwa App def build self lista WebOps getList layout BoxLayo
  • 使用随机放置的 NaN 创建示例 numpy 数组

    出于测试目的 我想创建一个M by Nnumpy 数组与c随机放置的 NaN import numpy as np M 10 N 5 c 15 A np random randn M N A mask np nan 我在创建时遇到问题mas

随机推荐

  • 将 HTML 转换为 PDF - 任何 ASP.net 库 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • SerialPort.Open() 抛出 IOException - 系统资源不足,无法完成请求的服务

    我编写了一个 NET 4 Windows 服务 该服务定期 通常每天一次 通过串行端口与外部设备进行通信 总而言之 服务效果很好 但对于一位客户来说 时不时地打电话给SerialPort Open 抛出以下异常 System IO IOEx
  • iPhone 分布:当前没有匹配的配置文件

    我即将将应用程序上传到 iTunes Connect 我不是团队代理 团队代理似乎也不能让我成为团队代理 于是他登录会员中心并下载了分发证书 该证书与 WWDR 证书一起位于我的钥匙串中 捆绑包标识符设置为 se companyname a
  • C++ 和 UTF8 - 为什么不直接替换 ASCII?

    在我的应用程序中 我必须不断地在之间转换字符串std string and std wstring由于不同的 API boost win32 ffmpeg 等 特别是对于 ffmpeg 字符串以 utf8 gt utf16 gt utf8
  • 我想使用并行 ssh 在多个服务器上运行 bash 脚本,但它简单地打印 echo 语句

    我有一个名为的 bash 脚本sr run batch sh它可以实现图像的超分辨率 现在我想同时在不同的服务器上并行进行测试 IE 1 个给定时间点的虚拟机 然后在某个时间点有 2 个虚拟机 然后是 3 个 然后是 4 个 我尝试将命令写
  • 如何在Android上更快地将RGB565转换为YUV420SP?

    我需要显示一张jpeg图片 并将其转换为YUV420SP 首先我使用SkBitmap解析jpeg并显示它 然后我使用下面的代码在android上将RGB565转换为YUV420SP 但是转换640 480 RGB565图片花费了75ms 所
  • 如何以Python方式选择随机字符? [复制]

    这个问题在这里已经有答案了 我想在 python 中生成一个 10 个字母数字字符的长字符串 因此 这是从字母数字字符列表中选择随机索引的一部分 My plan set list a b c all the way till I finis
  • 检测 SQL 数据库更改

    考虑这个例子 INSERT INTO Table column1 SELECT value1 如果我要在 SSMS 中执行此命令 对于 C 表单应用程序 我需要做什么才能识别此事件 就像应用程序显示一个简单的东西一样MessageBox当此
  • 为什么此已验证的 JSON Web 令牌 (JWT) 输出为未定义?

    我正在尝试解码 JWTid token using jwks rsa https github com auth0 node jwks rsa and jsonwebtoken https github com auth0 node jso
  • IndexError:列表索引超出 model.fit() 范围

    我是张量流的新手 我正在尝试使用形状 16 16 的图像来训练我的网络 我将3张512 512的灰度图像分成16 16并全部附加 所以我有3072 16 16 训练时我遇到错误 我正在使用 jupyter 笔记本 有人可以帮助我吗 这是代码
  • 使用 Phonegap for android 的应用程序图标[重复]

    这个问题在这里已经有答案了 我正在尝试将图标应用到我在 PhoneGap 本地制作的应用程序中 我已经进行了尽可能多的搜索 并且只找到了在 PhoneGap 构建上应用应用程序图标的方法 但是我正在 Eclipse 中本地构建应用程序 有人
  • 如何使用 Slick 代码生成器来包含数据库视图?

    我正在尝试使用 Slick 3 0 3 为我的架构中的数据库表和视图生成 Scala 代码 服用这个博客 http arnaudt github io 2015 03 31 slick codegen html例如我有以下文件build s
  • 如何在 Yii 中播种?

    我想知道一旦通过迁移创建了表 如何在 Yii 中播种 我有一个使用 up 方法的迁移 public function up this gt createTable users array id gt pk login gt string N
  • 如何减去两个数字字符串[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 查找二叉搜索树中某个节点的父节点

    所以我想找到二叉树中一个Node的父节点 假设我通过文本文件在树中输入30 15 17 45 69 80 7 这棵树应该是 30 15 45 7 17 69 80 这是我的代码 Node BST searchforparentnode No
  • Angularjs:事件发生后服务器端(php)渲染和数据绑定客户端

    后端提供了一个完全渲染的网站 在前端我希望 AngularJS 通过 ajax 调用 数据绑定来处理动态内容 但是如果你提供指令 ng bind 那么 AngularJS 会将它们直接绑定到它们的初始值 该值在任何之前都是 NULL用户操作
  • 如何在IE10 Mobile中制作固定div?

    如何制作适用于 Windows Phone 8 上 IE10 Mobile 的固定 div 我当前使用的代码是 div style width 100 background color blue test div 这仅部分有效 当用户滚动时
  • 使用 numpy 在重复信号的一部分内绘制抛物线

    我有一个重复信号 它随着大约每秒重复一次的过程的每个周期而略有变化 尽管每个周期的持续时间和内容在某些参数内略有不同 我的信号数据每秒有一千个 x y 坐标 每个周期内的一小部分但很重要的数据已损坏 我想用向上的抛物线替换每个损坏的部分 对
  • 安卓屏幕方向

    I tried getOrientation 获取方向值但它总是返回0 getOrientation 已弃用 但这不一定是问题的根源 确实 您应该使用获取旋转 代替获取方向 但只有当您的目标是 Android 2 2 API 级别 8 或更
  • 无法将关键字“用户名”解析为字段。选项有:城市、身份证、电话等

    我想就这些问题寻求帮助 我确实知道这似乎与同一问题的其他问题相似 但我环顾四周 发现没有什么可以真正解决我的问题 顺便说一句 这是我第二次在这里提问 所以请告诉我这条消息是否太长 谢谢 我将 AllAuth 与 Django 1 8 和 P