用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....