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

无法分配django。乌提尔斯。功能的SimpleLazyObject,必须是用户实例

尉迟清野
2023-03-14

从django分配用户对象的正确方法是什么。contrib。auth。模型视图中的模型对象是否具有对用户的外键引用?新联系人示例如下:

def index(request):
    form = SignupForm(request.POST or None)
    if form.is_valid():
        new_contact = form.save(commit=False)
        new_contact.user = request.user
        new_contact.save()
        # send_mail ...
        return HttpResponseRedirect(reverse('app:template'))
    else:
        return render_to_response('index.html', {'form': form}, context_instance=RequestContext(request))

“new_contact.user=request.user”在/无法分配“”时抛出错误值error:“contact.user”必须是“user”实例,因为请求。用户是一个对象包装器,而不是实际用户(它还不存在)。但如果我建立新的联系。user=auth。get_user(request)[基于这里的答案:modelforms中的valueError],即使我正在导入django,它也会返回namererror'auth'。contrib。授权进入我的视图。正确的方法是什么?谢谢

我的模型是:

from django import forms
from .models import Contact

class SignupForm(forms.ModelForm):
 class Meta:
    model = Contact
    fields = ['name','email','company']

共有2个答案

申自明
2023-03-14

不知怎么的,你在这里漏了一步。你说用户还不存在,但那是因为你没有任何代码来创建它。你需要这样做——这不是为你做的。

最好的方法是从contrib中将现有的UserCreationForm子类化。auth。窗体并将字段添加到其中。

葛季萌
2023-03-14

导入声明应为:

from django.contrib.auth import get_user

以及对get\u user()的实际调用:

new_contact.user = get_user(request)

仅供参考,引用django.contrib.auth来源:

def get_user(request):
    """
    Returns the user model instance associated with the given request session.
    If no user is retrieved an instance of `AnonymousUser` is returned.
    """
    ...

希望这有所帮助。

 类似资料:
  • 我在运行django代码时遇到以下错误。我是一个绝对的初学者,我遵循一个教程来创建一个crud应用程序。 在我的html表单中键入信息时,我得到以下错误 ValueError:无法分配django。contrib。auth。模型。0x00000288775D3EF0处的匿名用户对象:“Note.user”必须是“user”实例 从。派克 views.py forms.py 创造html

  • 我在django rest auth中使用自定义寄存器序列化程序来添加注册时的新字段。 我在用户模型中有一个国家/地区模型和一个国家/地区字段,它是国家/地区的FK。 user.models user.serializers 自定义寄存器序列化器 以国家/地区为对象从客户端发送的示例数据 {用户名:“伯尼”,电子邮件:bernie@d.com,国家:{…},密码1:“密码”,密码2:“密码”} 但

  • 我一直在尝试创建一个django项目,该项目拥有用户,并且这些用户可以添加他们创建的书籍的标题。但每次我输入书名(不在管理页面上)时,我都会出现这个错误 models.py

  • HTTP GET /admin/500[0.00,127.0.0.1:51425]Traceback(最近一次调用最后一次): File"C:\Program Files(x86)\Microsoft Visual Studio\Shared\Python37_64\lib\site-包\daphne\http_protocol.py",第180行,进程"server"中:self.server_

  • 我在向数据库添加新的自定义用户时遇到问题。我知道网上有一些关于这个问题的帖子,但我找不到解决问题的办法。点击注册页面中的“提交”按钮后,这里是哪个模板: 它一直说:“无法分配” 源代码: 观点。巴拉圭 模特。巴拉圭 表单.PY 设置。.PY: 编辑 完全错误跟踪: 文件"C:\用户\Dawid\AppData\本地\程序\Python\Python35-32\lib\site-包\django-1

  • 本文向大家介绍Django实现分页功能,包括了Django实现分页功能的使用技巧和注意事项,需要的朋友参考一下 Django提供了一个新的类来帮助你管理分页数据,这个类存放在django/core/paginator.py.它可以接收列表、元组或其它可迭代的对象。   基本语法实例  官方解释在视图中的应用 在template的html模板中的应用 举例讲述分页功能的使用目的说明   现要实现如下