“WSGIRequest”对象没有属性:无法获取变量的值

2024-09-28 01:31:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试添加一个功能——一个查询表单,其他一切都可以,但是在提交时,我无法获得我的user_id变量的值。非常感谢您的帮助和/或意见

models.py:

from django.db import models
from datetime import datetime

# Create your models here.
class Contact(models.Model):
    listing = models.CharField(max_length=200)
    listing_id = models.IntegerField()
    name = models.CharField(max_length=200)
    email = models.CharField(max_length=100)
    phone = models.CharField(max_length=100)
    message = models.TextField(blank=True)
    contact_date = models.DateTimeField(default=datetime.now, blank=True)
    user_id = models.IntegerField(default=0, blank=True)
    def __str__(self):
        return self.name

views.py:

from django.shortcuts import render, redirect
from django.contrib import messages

from . models import Contact

# Create your views here.


def contact(request):
    if request.method == 'POST':
        listing_id = request.POST['listing_id']
        listing = request.POST['listing']
        name = request.POST['name']
        email = request.POST['email']
        phone = request.POST['phone']
        message = request.POST['message']
        if 'user_id' in request.POST:
            user_id = request.POST['user_id']
        else:
            user_id = False
        #user_id = request.POST['user_id']
         realtor_email = request.POST['realtor_email']

        # check if already made inquiry
    
    

    if request.user.is_authenticated:
      user_id = request.user_id         # problematic
      has_contacted = Contact.objects.all().filter(listing_id=listing_id, user_id=user_id)
      if has_contacted:
          messages.error(request, "Inquiry already made,")
          return redirect('/listings/'+listing_id)

    contact = Contact(listing=listing, listing_id=listing_id, name=name, email=email, phone=phone, message=message, user_id=user_id,)

    contact.save()

    messages.success(request, 'Your request has been submitted, a realtor will get back to you soon,')
    return redirect('/listings/'+listing_id)

admin.py:

from django.contrib import admin
from . models import Contact
# Register your models here.



class ContactAdmin(admin.ModelAdmin):
    list_display = ('id', 'name', 'listing', 'email', 'contact_date')
    list_display_links = ('id', 'name')
    search_fields = ('name', 'email', 'listing')
    list_per_page = 25





admin.site.register(Contact, ContactAdmin)

目录和相关html:

enter image description here

错误:

属性错误位于/联系人/联系人 “WSGIRequest”对象没有属性“user\u id” 申请方式:邮寄 请求URL:http://127.0.0.1:8000/contacts/contact Django版本:3.1.7 异常类型:AttributeError 异常值:
“WSGIRequest”对象没有属性“user\u id” 异常位置:C:\Dev\btre\u project\btre\contacts\views.py,第35行,联系人中 Python可执行文件:C:\Dev\btre\u project\venv\Scripts\Python.exe Python版本:3.8.0 Python路径:
['C:\Dev\btre\u project\btre', 'C:\Users\HP\AppData\Local\Programs\Python\Python38-32\Python38.zip', 'C:\Users\HP\AppData\Local\Programs\Python\Python38-32\DLLs', 'C:\Users\HP\AppData\Local\Programs\Python\Python38-32\lib', 'C:\Users\HP\AppData\Local\Programs\Python\Python38-32', 'C:\Dev\btre\u project\venv', 'C:\Dev\btre\u项目\venv\lib\site包']

C:\Dev\btre_project\btre\contacts\views.py, line 35, in contact
      user_id = request.user_id …
▼ Local vars
Variable    Value
email   
'bobo@email.com'
listing 
'187 Wookrow St.'
listing_id  
'3'
message 
'kuytrddtyuiop'
name    
'test1'
phone   
'2223334444'
realtor_email   
'asdf@asdf.com'
request 
<WSGIRequest: POST '/contacts/contact'>
user_id 
False

Tags: namefromimportidmessagemodelsemailrequest

热门问题