设置用户时在django视图中请求错误
Request error in django view when setting up user
我有一个应用程序可以让当前登录的用户创建一个 Person 对象。该人对象将当前登录的用户作为其所有者。
但是当我保存表格时它给了我以下错误
global name 'request' is not defined
我正在尝试使用 Django CreateView
来实现这一点
错误引用
Traceback:
File "C:\Users\BITSWI~1\Desktop\Maala\Maala\lib\site-packages\django\core\handlers\exception.py" in inner
41. response = get_response(request)
File "C:\Users\BITSWI~1\Desktop\Maala\Maala\lib\site-packages\django\core\handlers\base.py" in _get_response
187. response = self.process_exception_by_middleware(e, request)
File "C:\Users\BITSWI~1\Desktop\Maala\Maala\lib\site-packages\django\core\handlers\base.py" in _get_response
185. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\BITSWI~1\Desktop\Maala\Maala\lib\site-packages\django\views\generic\base.py" in view
68. return self.dispatch(request, *args, **kwargs)
File "C:\Users\BITSWI~1\Desktop\Maala\Maala\lib\site-packages\django\views\generic\base.py" in dispatch
88. return handler(request, *args, **kwargs)
File "C:\Users\BITSWI~1\Desktop\Maala\Maala\lib\site-packages\django\views\generic\edit.py" in post
217. return super(BaseCreateView, self).post(request, *args, **kwargs)
File "C:\Users\BITSWI~1\Desktop\Maala\Maala\lib\site-packages\django\views\generic\edit.py" in post
183. return self.form_valid(form)
File "C:\Users\Bitswits 3\Desktop\Maala\MaalaWeddings\userfiles\views.py" in form_valid
120. obj.user_relation = request.user
Exception Type: NameError at /Personadd/
Exception Value: global name 'request' is not defined
Views.py
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.shortcuts import *
from django.contrib.admin.views.decorators import staff_member_required
from .forms import *
from django.shortcuts import *
from .models import *
from django.contrib.auth.forms import *
from django.http import *
from datetime import *
from django.contrib.auth import *
from django.contrib.auth.decorators import login_required
from django.contrib.auth.models import User
from django.views.generic import CreateView, ListView, DetailView
from django.views import generic
from .models import *
import requests
class PersonCreate(CreateView):
model = PersonData
template_name = "userfiles/add-person.html"
fields = [
'person_first_name',
'person_last_name',
'person_address',
'person_email',
'person_contact_number',
'person_members' ]
def form_valid(self, form):
obj = form.save(commit=False)
obj.user_relation = request.user
obj.save()
return HttpResponse("DONE")
models.py
class PersonData(models.Model):
user_relation = models.ForeignKey(
User, on_delete=models.CASCADE)
person_first_name = models.CharField("First Name", max_length=25)
person_last_name = models.CharField("last Name", max_length=25)
person_address = models.CharField("Address", max_length=512)
person_email = models.EmailField("Email", max_length=512)
person_contact_number = models.PositiveIntegerField("Phone Number", blank=True, null=True)
person_members = models.PositiveSmallIntegerField(
"Family members", blank=True, null=True)
我无法理解为什么这个错误甚至首先发生,因为我认为 request 在 Django
中无处不在
以及您使用的是 Class Based View
您要使用的所有参数或变量都需要自己附加到它
所以,
obj.user_relation = self.request.user
self
代表instance of the class
。通过使用 “self” 关键字,我们可以访问 的 属性 和 方法 ]class。它将 属性 与 给定参数 绑定。
我有一个应用程序可以让当前登录的用户创建一个 Person 对象。该人对象将当前登录的用户作为其所有者。 但是当我保存表格时它给了我以下错误
global name 'request' is not defined
我正在尝试使用 Django CreateView
来实现这一点错误引用
Traceback:
File "C:\Users\BITSWI~1\Desktop\Maala\Maala\lib\site-packages\django\core\handlers\exception.py" in inner
41. response = get_response(request)
File "C:\Users\BITSWI~1\Desktop\Maala\Maala\lib\site-packages\django\core\handlers\base.py" in _get_response
187. response = self.process_exception_by_middleware(e, request)
File "C:\Users\BITSWI~1\Desktop\Maala\Maala\lib\site-packages\django\core\handlers\base.py" in _get_response
185. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\BITSWI~1\Desktop\Maala\Maala\lib\site-packages\django\views\generic\base.py" in view
68. return self.dispatch(request, *args, **kwargs)
File "C:\Users\BITSWI~1\Desktop\Maala\Maala\lib\site-packages\django\views\generic\base.py" in dispatch
88. return handler(request, *args, **kwargs)
File "C:\Users\BITSWI~1\Desktop\Maala\Maala\lib\site-packages\django\views\generic\edit.py" in post
217. return super(BaseCreateView, self).post(request, *args, **kwargs)
File "C:\Users\BITSWI~1\Desktop\Maala\Maala\lib\site-packages\django\views\generic\edit.py" in post
183. return self.form_valid(form)
File "C:\Users\Bitswits 3\Desktop\Maala\MaalaWeddings\userfiles\views.py" in form_valid
120. obj.user_relation = request.user
Exception Type: NameError at /Personadd/
Exception Value: global name 'request' is not defined
Views.py
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.shortcuts import *
from django.contrib.admin.views.decorators import staff_member_required
from .forms import *
from django.shortcuts import *
from .models import *
from django.contrib.auth.forms import *
from django.http import *
from datetime import *
from django.contrib.auth import *
from django.contrib.auth.decorators import login_required
from django.contrib.auth.models import User
from django.views.generic import CreateView, ListView, DetailView
from django.views import generic
from .models import *
import requests
class PersonCreate(CreateView):
model = PersonData
template_name = "userfiles/add-person.html"
fields = [
'person_first_name',
'person_last_name',
'person_address',
'person_email',
'person_contact_number',
'person_members' ]
def form_valid(self, form):
obj = form.save(commit=False)
obj.user_relation = request.user
obj.save()
return HttpResponse("DONE")
models.py
class PersonData(models.Model):
user_relation = models.ForeignKey(
User, on_delete=models.CASCADE)
person_first_name = models.CharField("First Name", max_length=25)
person_last_name = models.CharField("last Name", max_length=25)
person_address = models.CharField("Address", max_length=512)
person_email = models.EmailField("Email", max_length=512)
person_contact_number = models.PositiveIntegerField("Phone Number", blank=True, null=True)
person_members = models.PositiveSmallIntegerField(
"Family members", blank=True, null=True)
我无法理解为什么这个错误甚至首先发生,因为我认为 request 在 Django
中无处不在以及您使用的是 Class Based View
您要使用的所有参数或变量都需要自己附加到它
所以,
obj.user_relation = self.request.user
self
代表instance of the class
。通过使用 “self” 关键字,我们可以访问 的 属性 和 方法 ]class。它将 属性 与 给定参数 绑定。