UNIQUE 约束失败:auth_user.username

2024-01-26

我试图将名字和姓氏直接从 Facebook API 存储到用户身份验证模型(使用 FacebookProfile 模型扩展,包含 webpull、id 和year_formed)

模型.py

class FacebookProfile(models.Model):
    user = models.OneToOneField(User, on_delete = models.CASCADE)


    id = models.PositiveIntegerField(primary_key = True)
    #name = models.CharField(max_length = 200, null = True)
    year_formed = models.PositiveIntegerField(default = 0)
    webpull= models.CharField(max_length =1000, null = True)

Views.py

if request.method == 'GET':
    print 'im here'

    return render(request, "logV2.html")
if request.method == "POST":
    first_name = request.POST.get('first_name')
    last_name = request.POST.get('last_name')
    print first_name, last_name

    facebook_user = FacebookUserForm(data=request.POST)
    facebook_profile = FacebookProfileForm()

    has_account = authenticate(first_name = first_name, last_name = last_name)

    if has_account:
        print 'this has account'
        login(request, has_account)
        return HttpResponseRedirect('/music/home/')
    else:
        id_ = request.POST.get('id')
        birthday = request.POST.get('year_formed')
        webpull = request.POST.get('webpull')

        if birthday == "undefined":
            print 'im emplty'   
            year_formed = random.randint(1993,1998)
        else:
            year_formed = re.findall(r"[0-9][0-9][0-9][0-9]$", birthday)[0]

        print id_, year_formed, webpull

        print facebook_user

        user = facebook_user.save()
        profile = facebook_profile.save(commit = False)
        profile.user = user
        profile.webpull = webpull
        profile.id = id_

        ## steal birtday fucntion from log 
        # move to new database facebook (neeed to change all artists to facebookprofile)
        profile.year_formed = year_formed
        profile.save()



        #authenticate user. then log him in.
        #user = authenticate(username = profile.user.username)
        now_has_account = authenticate(first_name = first_name, last_name = last_name)
        login(request, now_has_account)


        #profile.save()
        return HttpResponseRedirect('/music/home/')

在视图中,代码制动于user = facebook_user.save()

我尝试清除整个数据库,

also

我从 html 收到的是一个带有名字、姓氏、id、year_formed、webpull 的表单。数据顺利到达后端。

Forms.py

class FacebookUserForm(forms.ModelForm):
    class Meta:
        model = User
        fields = ('first_name', 'last_name')

class FacebookProfileForm(forms.ModelForm):
    class Meta:
        model = FacebookProfile
        fields = ('id', 'year_formed', 'webpull',)

我正在验证什么Auth_Backend.py

class OnlynameandsurnameAuth(ModelBackend):
    def authenticate(self, first_name = None, last_name = None):
        try:
            return User.objects.get(first_name = first_name, last_name = last_name)
        except:
            return None

then auth.py

admin.site.register(FacebookProfile)

后端验证设置.py

AUTHENTICATION_BACKENDS = (
    # ... your other backends
    #'music.auth_backend.PasswordlessAuthBackend',
    'music.auth_backend.OnlynameandsurnameAuth',
)

有什么想法如何保存名字和姓氏而不出现唯一错误吗?

谢谢! :D


如果您使用默认的身份验证功能,不提供密码应该总是(?)失败,这意味着

has_account = authenticate(first_name = first_name, last_name = last_name)

永远都是无。

但主要问题是您没有为新用户设置用户名,仅设置名字和姓氏。这将工作一次,但在创建一个具有空用户名的用户后,下一次尝试将失败,因为用户需要唯一的用户名。 所以:添加用户名!

除此之外,我认为

user = facebook_user.save()

不会将用户分配给“用户”,而是将表单分配给“用户”。 您应该使用 facebook_user.instance。

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

UNIQUE 约束失败:auth_user.username 的相关文章

  • Python PAM 模块的安全问题?

    我有兴趣编写一个 PAM 模块 该模块将利用流行的 Unix 登录身份验证机制 我过去的大部分编程经验都是使用 Python 进行的 并且我正在交互的系统已经有一个 Python API 我用谷歌搜索发现pam python http pa
  • 如何收集列表、字典等中重复计算的结果(或制作修改每个元素的列表的副本)?

    There are a great many existing Q A on Stack Overflow on this general theme but they are all either poor quality typical
  • Python tcl 未正确安装

    我刚刚为 python 安装了graphics py 但是当我尝试运行以下代码时 from graphics import def main win GraphWin My Circle 100 100 c Circle Point 50
  • 运行多个 scrapy 蜘蛛的正确方法

    我只是尝试使用在同一进程中运行多个蜘蛛新的 scrapy 文档 http doc scrapy org en 1 0 topics practices html但我得到 AttributeError CrawlerProcess objec
  • 在 NumPy 中获取 ndarray 的索引和值

    我有一个 ndarrayA任意维数N 我想创建一个数组B元组 数组或列表 其中第一个N每个元组中的元素是索引 最后一个元素是该索引的值A 例如 A array 1 2 3 4 5 6 Then B 0 0 1 0 1 2 0 2 3 1 0
  • 使用 Pycharm 在 Windows 下启动应用程序时出现 UnicodeDecodeError

    问题是当我尝试启动应用程序 app py 时 我收到以下错误 UnicodeDecodeError utf 8 编解码器无法解码位置 5 中的字节 0xb3 起始字节无效 整个文件app py coding utf 8 from flask
  • IRichBolt 在storm-1.0.0 和 pyleus-0.3.0 上运行拓扑时出错

    我正在运行风暴拓扑 pyleus verbose local xyz topology jar using storm 1 0 0 pyleus 0 3 0 centos 6 6并得到错误 线程 main java lang NoClass
  • python 集合可以包含的值的数量是否有限制?

    我正在尝试使用 python 设置作为 mysql 表中 ids 的过滤器 python集存储了所有要过滤的id 现在大约有30000个 这个数字会随着时间的推移慢慢增长 我担心python集的最大容量 它可以包含的元素数量有限制吗 您最大
  • Pandas Dataframe 中 bool 值的条件前向填充

    问题 如何转发 fill boolTruepandas 数据框中的值 如果是当天的第一个条目 True 到一天结束时 请参阅以下示例和所需的输出 Data import pandas as pd import numpy as np df
  • 表达式中的 Python 'in' 关键字与 for 循环中的比较 [重复]

    这个问题在这里已经有答案了 我明白什么是in运算符在此代码中执行的操作 some list 1 2 3 4 5 print 2 in some list 我也明白i将采用此代码中列表的每个值 for i in 1 2 3 4 5 print
  • ExpectedFailure 被计为错误而不是通过

    我在用着expectedFailure因为有一个我想记录的错误 我现在无法修复 但想将来再回来解决 我的理解expectedFailure是它会将测试计为通过 但在摘要中表示预期失败的数量为 x 类似于它如何处理跳过的 tets 但是 当我
  • Python:尝试检查有效的电话号码

    我正在尝试编写一个接受以下格式的电话号码的程序XXX XXX XXXX并将条目中的任何字母翻译为其相应的数字 现在我有了这个 如果启动不正确 它将允许您重新输入正确的数字 然后它会翻译输入的原始数字 我该如何解决 def main phon
  • Numpy 优化

    我有一个根据条件分配值的函数 我的数据集大小通常在 30 50k 范围内 我不确定这是否是使用 numpy 的正确方法 但是当数字超过 5k 时 它会变得非常慢 有没有更好的方法让它更快 import numpy as np N 5000
  • 从 pygame 获取 numpy 数组

    我想通过 python 访问我的网络摄像头 不幸的是 由于网络摄像头的原因 openCV 无法工作 Pygame camera 使用以下代码就像魅力一样 from pygame import camera display camera in
  • 为美国东部以外地区的 Cloudwatch 警报发送短信?

    AWS 似乎没有为美国东部以外的 SNS 主题订阅者提供 SMS 作为协议 我想连接我的 CloudWatch 警报并在发生故障时接收短信 但无法将其发送到 SMS YES 经过一番挖掘后 我能够让它发挥作用 它比仅仅选择一个主题或输入闹钟
  • Python:计算字典的重复值

    我有一本字典如下 dictA unit1 test1 alpha unit1 test2 beta unit2 test1 alpha unit2 test2 gamma unit3 test1 delta unit3 test2 gamm
  • 检查所有值是否作为字典中的键存在

    我有一个值列表和一本字典 我想确保列表中的每个值都作为字典中的键存在 目前我正在使用两组来确定字典中是否存在任何值 unmapped set foo set bar keys 有没有更Pythonic的方法来测试这个 感觉有点像黑客 您的方
  • 在 Pandas DataFrame Python 中添加新列[重复]

    这个问题在这里已经有答案了 例如 我在 Pandas 中有数据框 Col1 Col2 A 1 B 2 C 3 现在 如果我想再添加一个名为 Col3 的列 并且该值基于 Col2 式中 如果Col2 gt 1 则Col3为0 否则为1 所以
  • 在python中,如何仅搜索所选子字符串之前的一个单词

    给定文本文件中的长行列表 我只想返回紧邻其前面的子字符串 例如单词狗 描述狗的单词 例如 假设有这些行包含狗 hotdog big dog is dogged dog spy with my dog brown dogs 在这种情况下 期望
  • 循环标记时出现“ValueError:无法识别的标记样式 -d”

    我正在尝试编码pyplot允许不同标记样式的绘图 这些图是循环生成的 标记是从列表中选取的 为了演示目的 我还提供了一个颜色列表 版本是Python 2 7 9 IPython 3 0 0 matplotlib 1 4 3 这是一个简单的代

随机推荐

  • 直接从 JavaScript 访问 GET?

    我想我可以使用 PHP 来访问 GET来自 JavaScript 的变量 但也许它更简单 有没有办法直接用JS实现呢 Look at window location search 它将包含一个像这样的字符串 foo 1 bar 2 要将其转
  • 核心数据使用一次后<故障>

    我搜索了几个小时但没有找到任何东西 我处于有线状态核心数据 获取对象的方法 func fetchAllCoreData gt NSArray let moc DataController managedObjectContext let f
  • 如何在android中的gridview适配器的getView()内膨胀另一个布局?

    I want to create weekly calendar view and inside each grid item each day there are may be several activities Out of this
  • 关闭时控制台关闭过程[重复]

    这个问题在这里已经有答案了 我将一个DLL注入到一个进程中 在该进程的入口点我生成一个新线程并分配一个控制台 我将所有std重定向到控制台 当我关闭控制台窗口时整个进程关闭 有没有办法这样它就不会关闭进程 这是我的代码 入口点 pragma
  • 如何识别用户何时开始和停止在 android 中说话? (Android 中的语音识别)

    我已经进行了大量的研发并使用了大量的资源来解决我的问题 但我未能找到任何适当的解决方案 我已经开发了一个应用程序 现在我想添加基于语音的功能 to it 所需的功能是 1 when USER开始说话 应该录制音频 视频 and 2 当用户停
  • StreamSubscription.cancel 与 StreamController.close 在内存泄漏方面的比较

    是否打电话StreamController close自动取消StreamSubscription并删除所有引用 我认为这是有道理的 但我无法在文档中找到它来确定 我有以下代码 dispose context bloc blocSubscr
  • Netsuite Suitescript可以修改文件柜中的文件吗?

    我有一个很大的产品列表 需要生成它的静态文件 并让该文件可以在我的网站中访问 目前 我生成列表 并将其上传到文件柜 我希望自动化这个过程 我想安排一个 SuiteScript 每晚运行并生成此列表并更新文件柜中的文件 这可以做到吗 than
  • HTTP 直播 MPEG TS 段

    我使用 FFMPEG 和免费分段器 Carson Mcdonald s 来生成我的 ts 片段 然后将其保存到网络服务器并通过播放 m3u8 来使用 Quicktime 进行播放 如果我有段 1 2 3 4 和另一个包含段 1 2 3 4
  • 解释一下莫名其妙的死锁

    首先 我不明白我怎么能得到any根本没有死锁 因为我没有使用显式锁定 所以只涉及一个表 每个进程都有一个单独的进程来插入 选择和更新行 一次只插入或更新一行 并且每个进程很少 也许一分钟一次 完全运行 这是一个电子邮件队列 CREATE T
  • 从 Visual Studio 在 Linux docker 容器中调试 nunit 测试

    我正在尝试更改我们的 NET Core 3 0 应用程序以在 Linux 容器中运行 我已经到了可以在容器内恢复和构建的地步 但测试失败了 这是预期的 该应用程序中的某些内容仅适用于 Windows 计算机 我想从 Windows 上的 V
  • 配置 Play 1.x/JPA 以顺序生成实体 ID?

    强制 Play JPA 使实体 ID 连续的最佳方法是什么 他们不是 https stackoverflow com questions 9771532 are jpa ids sequential 一种想法是将 play db jpa M
  • 谁能告诉我当我尝试添加syncfusion_flutter_pdfviewer包时flutter中的这个错误是什么

    当我在 yaml 文件中添加syncfusion flutter pdfviewer 包时 出现以下错误 谁能告诉我那个错误状态是什么 C src flutter pub cache hosted pub dartlang org sync
  • 如何在Docker中使用“绑定挂载”

    运行此命令后 我在日志中收到错误 docker run d p 3000 80 name Feedback app v 反馈 app feedback v WorkSpace d data volumes 03 adj node code
  • 如何在Linux命令行中运行jar文件

    如何将类路径设置为当前目录并运行名为的 jar 文件load jar通过提供参数作为当前目录中的内容load 2从 Linux 命令行 我确实尝试按如下方式运行该 jar 但它从其他目录执行类 java cp load jar CLASSP
  • 通过多线程访问文件

    我想通过10个线程访问一个大文件 文件大小可能从30MB到1GB不等 然后通过10个线程处理文件中的每一行并将它们写入另一个文件 如果我只使用一个线程访问IO 其他线程就会被阻塞 该处理花费的时间几乎相当于从文件系统读取一行代码 还有一个限
  • Python 如何实现其类型对象,即类型类型始终是类型?

    我知道Python中的所有东西都是一个对象 并且这些对象的 类型 或类 是 类型 另外 类型的类型也是类型本身 正如解释得很好here http www cafepy com article python types and objects
  • Whatsapp://send?text 将字符串从“&”字符剪切到末尾? [复制]

    这个问题在这里已经有答案了 我正在尝试添加可在 WhatsApp 中共享的链接 例如 whatsapp send text http www example com products women dresses sessionid 3456
  • 为什么调用 DataTable().draw() 时 columns.render 不执行?

    我很困惑为什么列 渲染 https datatables net reference option columns render不包含在执行管道中数据表 draw https datatables net reference api dra
  • 如何在 GWT 中深度复制任意对象?

    我有一个标记为可序列化的任意对象 它有各种可变的子对象 表示货币金额 集合等 我希望能够克隆这个对象 这样如果用户修改它然后恢复他们的操作 我可以用新的克隆替换该克隆 这意味着我需要深层复制 因为我不希望用户对原始对象上出现的子对象进行更改
  • UNIQUE 约束失败:auth_user.username

    我试图将名字和姓氏直接从 Facebook API 存储到用户身份验证模型 使用 FacebookProfile 模型扩展 包含 webpull id 和year formed 模型 py class FacebookProfile mod