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

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

Django - OneToOneField 不斷返回 None

Django - OneToOneField 不斷返回 None

慕村225694 2022-11-09 17:23:40
我的 OneToOneField 不斷返回 None。我嘗試訪問我的網站,以便表單可以自動將帖子的作者作為當前登錄的人。我環顧四周,發現 OneToOneField 可以做到這一點。當我實際上在 User 模型中有用戶時,它會一直返回 None 。地球上發生了什么?Models.py: - 這是主要問題發生的地方from django.db import modelsfrom datetime import datetimefrom django import formsfrom django.forms import ModelFormfrom django.contrib.auth.models import Userfrom django.conf import settingsfrom django.contrib.auth import get_user_modelclass MainPost(models.Model):    post_author = models.OneToOneField(User, on_delete=models.CASCADE)    post_title = models.CharField(max_length=200)    post_content = models.TextField()    post_published = models.DateTimeField("date published", default=datetime.now())    def __str__(self):        return self.post_titleclass MainPostForm(ModelForm):    class Meta:        model = MainPost        fields = ["post_title", "post_content", "post_author"]        readonly_fields = "post_published"Views.py - 重要的是底部的 create_request()from django import formsfrom django.contrib.auth.forms import UserCreationFormfrom django.contrib.auth.models import Userclass NewUserForm(UserCreationForm):    email = forms.EmailField(required=True)    class Meta:        model = User        fields = ("username", "email", "password1", "password2")    def save(self, commit=True):        user = super(NewUserForm, self).save(commit=False)        user.email = self.cleaned_data["email"]        if commit:            user.save()        return user
查看完整描述

1 回答

?
波斯汪

TA貢獻1811條經驗 獲得超4個贊

嘗試這個:


def create_request(request):

    if request.method == 'POST':

        # create a form instance and populate it with data from the request:

        form = MainPostForm(request.POST)

        # check whether it's valid:

        if form.is_valid():

            main_post = form.save(commit=False)

            main_post.post_author = request.user

            main_post.save()

            return redirect("mymainapp:homepage")


    form = MainPostForm()

    return render(request, "trymysite/create.html", {"form":form})


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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