用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)
sex = 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', {'title': '购物车','cars':cars, 'user': user})
else:
return render (request, 'mine/login.html')
结果:
[25/Aug/2019 12:15:12] "GET /static/base/css/bootstrap.css.map HTTP/1.1" 404 1691
aiden 执行后的结果
[25/Aug/2019 12:15:13] "GET /cart/ HTTP/1.1" 200 5223
[25/Aug/2019 12:15:13] "GET /static/base/js/maps/swiper.jquery.js.map HTTP/1.1" 404 1712
[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', {'title': '购物车','cars':cars, 'user': user})
else:
return render (request, 'mine/login.html')
就会报错:
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\django\db\models\query.py", line 380, in get
self.model._meta.object_name
axf.models.DoesNotExist: Goods matching query does not exist. 就报错这个
[25/Aug/2019 12:19:30] "GET /cart/ HTTP/1.1" 500 84187
有没有哪位大佬知道这是什么原因?我应该怎么解决啊?