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

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

Django self.save() 不更新模型的狀態

Django self.save() 不更新模型的狀態

動漫人物 2022-08-25 13:58:33
我有一個非常簡單的模型和貓的視圖py文件(試圖測試/學習django的基本功能。然而,貓的幸福狀態從未真正更新過。class Cats(models.Model):    owner = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete = models.CASCADE)    name = models.CharField(max_length = 200)    description = models.TextField()    happiness = 6    def pet(self):        self.happiness = self.happiness+1        self.save()from django.shortcuts import render, get_object_or_404from .models import Catsdef cat_detail(request, pk):    cat = get_object_or_404(Cats, pk=pk)    return render(request, 'cats/cat_detail.html', {'cat': cat})def cat_interact(request, pk, action):    cat = get_object_or_404(Cats, pk=pk)    pet = False    if(action == 1):        cat.pet()        pet = True    return render(request, 'cats/cat_interact.html', {'cat': cat, 'pet': pet})操作將始終為 1(這是當前唯一可能的操作)。在“細節”和“互動”的html文件中,我打印出了貓的幸福狀態。當我進入交互頁面時,貓的幸福狀態被打印為7(因為默認/開始幸福感為6)。我希望將此值(7)保存到數據庫中,當我再次轉到詳細信息頁面時,它也打印7。但是,即使在詳細信息頁面上運行函數 cat.play() 后,它仍然會打印 6,這是默認設置。7 是否從未保存到數據庫?在這種情況下,self.save() 不起作用嗎?我應該如何更改我的代碼?
查看完整描述

1 回答

?
白衣染霜花

TA貢獻1796條經驗 獲得超10個贊

你的沒有連接到你的數據庫,你應該這樣寫它happiness


class Cats(models.Model):

    owner = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete = models.CASCADE)

    name = models.CharField(max_length = 200)

    description = models.TextField()

    happiness = models.IntegerField(default = 6)

那么這部分


def pet(self):

    self.happiness = self.happiness+1

    self.save()

將保存到數據庫happiness


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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