django外來鍵獲取資料

2021-09-26 11:11:16 字數 3470 閱讀 3436

用django寫乙個專案時,使用外來鍵獲取資料遇到乙個問題。

models建立的購物車表:

class carmodel(models.model):

user = models.foreignkey(usermodel) # 關聯使用者

goods = models.foreignkey(goods) # 關聯商品

c_num = models.integerfield(default=1) # 商品的個數

is_select = models.booleanfield(default=true) # 是否選擇商品

class meta:

db_table = 'axf_cart'

關聯的使用者表:

class usermodel(models.model):

username = models.charfield(max_length=32,unique=true)

password = models.charfield(max_length=256)

email = models.charfield(max_length=64, unique=true)

*** = models.booleanfield(default=false)

icon = models.imagefield(upload_to='icon')

is_delete = models.booleanfield(default=false)

ticket = models.charfield(max_length=50,null=true)

關聯的商品表:

class goods(models.model):

productid = models.charfield(max_length=16) # 商品的id

productimg = models.charfield(max_length=200) # 商品的

productname = models.charfield(max_length=100) # 商品的名稱

productlongname = models.charfield(max_length=200) # 商品的規格

isxf = models.integerfield(default=1)

pmdesc = models.charfield(max_length=100)

specifics = models.charfield(max_length=100) # 規格

price = models.floatfield(default=0) # 商品的折後**

marketprice = models.floatfield(default=1) # 商品的原價

categoryid = models.charfield(max_length=16) # 分類的id

childcid = models.charfield(max_length=16) # 子分類的id

childcidname = models.charfield(max_length=100) # 子分類的名稱

dealerid = models.charfield(max_length=16)

storenums = models.integerfield(default=1) # 排序

productnum = models.integerfield(default=1) # 銷量排序

在views.py 驗證登入後,外來鍵獲取資料,獲取usermode中的資料能獲取到,這裡是獲取使用者的使用者名稱:

def cart(request):

ticket = request.session['ticket']

if ticket:

user = usermodel.objects.get(ticket = ticket)

cars = carmodel.objects.filter(user_id = user.id)

for car in cars:

# imgurl = car.goods.productimg

# print(goods)

username = car.user.username #獲取usermodel中使用者的使用者名稱

print(username)

return render (request, 'cart/cart.html', )

else:

return render (request, 'mine/login.html')

結果:

aiden 執行後的結果

[25/aug/2019 12:15:13] "get /static/base/css/bootstrap.css.map http/1.1" 404 1691而獲取商品中(class goods(models.model))的資料時,這裡是獲取商品的url;商品中的其他資料也不能獲得:

def cart(request):

ticket = request.session['ticket']

if ticket:

user = usermodel.objects.get(ticket = ticket)

cars = carmodel.objects.filter(user_id = user.id)

for car in cars:

imgurl = car.goods.productimg

print(imgurl)

# username = car.user.username

# print(username)

return render (request, 'cart/cart.html', )

else:

return render (request, 'mine/login.html')

就會報錯:

self.model._meta.object_name

axf.models.doesnotexist: goods matching query does not exist. 就報錯這個

有沒有哪位大佬知道這是什麼原因?我應該怎麼解決啊?

Django資料之ORM外來鍵操作

如果公共關鍵字在乙個關係中是主關鍵字,那麼這個公共關鍵字被稱為另乙個關係的外來鍵。建立外來鍵 表一 class foo models.model name models.charfield max length 1 表二class business models.model id caption m...

Django外來鍵關係描述

注 本文需要你有一定的資料庫知識,本文的資料庫語法使用mysql書寫 django中,跟外來鍵有關的關係有三種,下面來一一介紹。這種最好理解,說白了就是最普通的外來鍵,看看下面兩個模型 class goodstype models.model name models.charfield max le...

django中的資料庫外來鍵操作

以mysql為例 1 在model中定義兩個資料表,食物資訊和食物類別資訊 class foodinfo models.model food id models.autofield max length 4 自定義主鍵,不指定主鍵缺省會生成乙個名為 id 列的主鍵 food name models....