亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如果用戶通過身份驗證并使用用戶憑據預加載數據庫中的所有信息,則嘗試加載某些表單

如果用戶通過身份驗證并使用用戶憑據預加載數據庫中的所有信息,則嘗試加載某些表單

RISEBY 2022-12-14 10:53:35
如果用戶已通過身份驗證并預加載數據庫中的所有信息,則嘗試加載某些表單,但我收到此錯誤,很可能是 forms.py 中出現了問題,但想法是,如果用戶已通過身份驗證,則他們不應完成該過程輸入他們的姓名和電子郵件,他們只需要發送消息。它目前對非注冊用戶來說就像一個魅力,但我以前從未為注冊用戶做過這樣的事情,所以我被困住了。forms.pyfrom django import formsfrom django.forms import ModelFormfrom .models import Messageclass NonAuthMessage(forms.ModelForm):    class Meta:        model = Message        fields = "__all__"class AuthMessage(forms.ModelForm):    def __init__(self):        self.name = user.request.username        self.email = user.request.email    class Meta:        model = Message        fields = ["message"]models.pyfrom django.db import modelsfrom django.utils import timezoneclass Message(models.Model):    name = models.CharField(max_length=50)    email = models.EmailField()    message = models.TextField(max_length=3000)    date_posted = models.DateTimeField(auto_now_add=True)    def __str__(self):        return self.email    class Meta:        ordering = ['-date_posted',]views.pyfrom django.shortcuts import render, redirectfrom .models import Messagefrom .forms import NonAuthMessage, AuthMessagedef contact(request):    formAuth = AuthMessage()    formNonAuth = NonAuthMessage()    mess = Message.objects.all()    if request.user.is_authenticated:        if request.method == "POST":            form = AuthMessage(request.POST)            if form.is_valid():                form.save()                return redirect('contact')                messages.success(request, 'Message sent to Alex!')    else:        if request.method =="POST":            form = NonAuthMessage(request.POST)            if form.is_valid():                form.save()                return redirect('contact')                messages.success(request, 'Message sent to Alex!')    context = {'formAuth': formAuth, 'formNonAuth': formNonAuth, 'mess': mess}    return render(request, 'contact/contact.html', context)
查看完整描述

1 回答

?
青春有我

TA貢獻1784條經驗 獲得超8個贊

嘗試將所需的用戶信息直接放在視圖中而不是表單中:


if request.user.is_authenticated:

    if request.method == "POST":

        form = AuthMessage(request.POST)

        if form.is_valid():

            authmess = form.save(commit=False)

            authmess.name = request.user.first_name

            authmess.email = request.user.email

            authmess.save()

            messages.success(request, 'Message sent to Alex!') 

            return redirect('contact')  


查看完整回答
反對 回復 2022-12-14
  • 1 回答
  • 0 關注
  • 92 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號