用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)  # 商品的idproductimg = 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)  # 分类的idchildcid = models.CharField(max_length=16)  # 子分类的idchildcidname = 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.productimgprint(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 getself.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

有没有哪位大佬知道这是什么原因?我应该怎么解决啊?

django外键获取数据相关推荐

  1. django 获取外键对应数据的方式

    模型 models.py中 ''' 遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书! ''' ...

  2. html单页面显示多个文章,从单个html页面上的多个django应用模型获取数据

    我有一个名为Project_Name的项目和一个名为first_app的应用程序,其中包含一些文章. 我在我的主页上显示这些文章标题作为应用页面上文章的链接.从单个html页面上的多个django应用 ...

  3. django外键和多数据库应用

    为什么80%的码农都做不了架构师?>>>    模型中如果有外键和多对多字段,创建的时候外键必须首先绑定,然后保存,才能添加多对多字段. from django.db import ...

  4. mysql取出数据外键_mysql数据表有外键,应注意的几点(目前学习所获得的经验)...

    mysql : 1.有做外键的表子表和父表的引擎要一致才能添加数据:否则报外键约束错误 2.数据 类型要一致,不然添加补了 外键: 3.InnoDB和 myisam的区别(来源:PHP100中文网) ...

  5. ms sql 带自增列 带外键约束 数据导入导出

    1,生成建表脚本 选中要导的表,点右键-编写表脚本为-create到  ,生成建表脚本 2,建表(在新库),但不建外键关系 不要选中生成外键的那部分代码,只选择建表的代码 3,导数据,用SQL STU ...

  6. django外键-left join

    创建model模型 from django.db import modelsclass Category(models.Model):name = models.CharField(max_lengt ...

  7. 关于django外键设置的问题

    进行一对多表的增删改查的时候,新版django2.0在设置外键的时候要新增一个on_set参数,网上的资料: 在django2.0后,定义外键和一对一关系的时候需要加on_delete选项,此参数为了 ...

  8. Django外键约束

    ORM外键约束 from django.db import models# 出版社 class Publisher(models.Model):id = models.AutoField(primar ...

  9. Django外键关系:一对一、一对多,多对多

    1. 一对多 model.py class UserTest(models.Model):name = models.CharField(max_length = 16 )sex = models.C ...

最新文章

  1. java ide 进行图形化界面时不能显示汉字_主流开源IDE汇总,Java程序员一定能用上!...
  2. Markdown 如何实现空行、空格?
  3. 【opencv】图像细化
  4. 计算机和hdmi无法正常显示,HDMI都不灵 为什么电脑连电视效果差?
  5. Vertx编程风格:您的反应式Web Companion REST API解释了
  6. 在kali Linux中搭建DVWA
  7. 【NOIP2017模拟6.25】小W的动漫
  8. DMN结合bpmn简化流程_07
  9. 不想做科技第一的金融公司,不是好的养老去处
  10. surface mesh framework运行
  11. 原生JS大揭秘—事件循环机制Event Loop
  12. 爬虫实例十一 全国城市房价排行
  13. ZZULIoj 1913: 小火山的计算能力
  14. .Net向Page和UpdatePanel输出JS
  15. python植物大战僵尸代码
  16. Chrome OS 初体验
  17. 有什么软件测试固态硬盘,SSD差距有多大?两款主流NVMe固态硬盘测试,一看就包懂...
  18. Xms Xmx PermSize MaxPermSize 区别
  19. ArcGIS遇到严重的应用程序错误的解决办法
  20. linux无法安装at命令,在Ubuntu/Debian/CentOS/Fedora下安装At及各种At命令的用法

热门文章

  1. 百度首页关于小米的新闻? 百度百家会不会成为百度败家
  2. 云计算基础——云存储
  3. linux系统下ping ipv6
  4. Qt实现密码输入框隐藏密码_小眼睛显示密码功能
  5. 【TortoiseGit】TortoiseGit安装和配置详细说明
  6. 如何修改右键菜单新建文档的参数--注册表操作
  7. 2.3阿里巴巴与四十大盗 背包问题
  8. Inno setup检测进程存在并杀掉进程
  9. java indexof 忽略大小写_忽略大小写Replace效率瓶颈IndexOf
  10. HTML+CSS简单应用实例——购物网站的制作(七)