第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

如何在 Django 的用戶擴(kuò)展模型中上傳個(gè)人資料圖片

如何在 Django 的用戶擴(kuò)展模型中上傳個(gè)人資料圖片

海綿寶寶撒 2023-09-02 16:12:15
將封面圖像上傳到 Django 的用戶擴(kuò)展模型時(shí),我沒有收到任何錯(cuò)誤,但我看不到我在做什么,因?yàn)樗鼪]有給出任何錯(cuò)誤,甚至沒有更新我的模型。不過,我可以通過使用這個(gè)概念來更改簡介,但我無法將封面圖像更新為我的用戶擴(kuò)展模型。這里我給出源碼models.pyclass Memer(models.Model):    user = models.OneToOneField(User, on_delete=models.CASCADE)    mobile = models.CharField(max_length=16, blank=True, null=True)    bio = models.CharField(max_length=150, blank=False, null=False, default="Hey! I'm new here.")    cover = models.ImageField(upload_to='cover-images/%y/%m/%d/', default='cover-images/default/memerrank-bg.jpg', blank=False, null=False)    profile = models.ImageField(upload_to='profile-images/%y/%m/%d/', default='profile-images/default/memerrank-no-dp.jpg', blank=False, null=False)    def __str__(self):        return str(self.user)forms.pyclass UpdateCoverImageForm(forms.ModelForm):    class Meta:        model = Memer        fields = ['cover']views.pydef profile(request, username):    try:        user = User.objects.get(username=username)        user_ = User.objects.filter(username=username)        memer = Memer.objects.filter(user=user_[0].id)    except User.DoesNotExist:        raise Http404("Memer does not exist.")    context = {        'user_': user_,        'memer': memer,    }
查看完整描述

2 回答

?
滄海一幻覺

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超5個(gè)贊

這里的問題在于views.py。

1.ModelForm構(gòu)造函數(shù)中的前兩個(gè)位置參數(shù)是數(shù)據(jù)和文件。您應(yīng)該轉(zhuǎn)到data第一個(gè)和files第二個(gè)。

2.如果此處沒有文件字段,則不進(jìn)行任何更改

bioForm?=?EditBioForm(data=request.POST,?instance=request.user.memer)

3.但是這里做出改變

coverImageForm?=?UpdateCoverImageForm(data=request.FILES,?instance=request.user.memer)

coverImageForm?=?UpdateCoverImageForm(request.POST,?request.FILES,?instance=request.user.memer)

并且 Boom 您的文件將得到更新。


查看完整回答
反對 回復(fù) 2023-09-02
?
12345678_0001

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊

您不會收到任何錯(cuò)誤,只是因?yàn)榇a完全按照您的指示執(zhí)行。代碼永遠(yuǎn)不會進(jìn)入 elif 語句,這是因?yàn)椤癷f bioForm.is_valid():”語句將始終返回 True。我建議你做這樣的事情


if request.method == "POST":

        bioForm = EditBioForm(data=request.POST, instance=request.user.memer)

        coverImageForm = UpdateCoverImageForm(data=request.FILES, instance=request.user.memer)

        if bioForm.is_valid() and coverImageForm.is_valid():

            memer_ = bioForm.save(commit=False)

            memer_ = coverImageForm.save(commit=False)

            memer_.save()

            memer_.save()

            messages.success(request, "Profile successfully updated your profile")

            return redirect('/profile/'+user_[0].username)

        else:

            messages.error(request, "Something wrong happend")

            return redirect('/profile/'+user_[0].username)

    return render(request, 'profile.html', context)

如果您希望一次更新一個(gè)字段,那么我建議您為每個(gè)字段制作不同的視圖。


查看完整回答
反對 回復(fù) 2023-09-02
  • 2 回答
  • 0 關(guān)注
  • 149 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號