django外键获取数据
用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外键获取数据相关推荐
- django 获取外键对应数据的方式
模型 models.py中 ''' 遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书! ''' ...
- html单页面显示多个文章,从单个html页面上的多个django应用模型获取数据
我有一个名为Project_Name的项目和一个名为first_app的应用程序,其中包含一些文章. 我在我的主页上显示这些文章标题作为应用页面上文章的链接.从单个html页面上的多个django应用 ...
- django外键和多数据库应用
为什么80%的码农都做不了架构师?>>> 模型中如果有外键和多对多字段,创建的时候外键必须首先绑定,然后保存,才能添加多对多字段. from django.db import ...
- mysql取出数据外键_mysql数据表有外键,应注意的几点(目前学习所获得的经验)...
mysql : 1.有做外键的表子表和父表的引擎要一致才能添加数据:否则报外键约束错误 2.数据 类型要一致,不然添加补了 外键: 3.InnoDB和 myisam的区别(来源:PHP100中文网) ...
- ms sql 带自增列 带外键约束 数据导入导出
1,生成建表脚本 选中要导的表,点右键-编写表脚本为-create到 ,生成建表脚本 2,建表(在新库),但不建外键关系 不要选中生成外键的那部分代码,只选择建表的代码 3,导数据,用SQL STU ...
- django外键-left join
创建model模型 from django.db import modelsclass Category(models.Model):name = models.CharField(max_lengt ...
- 关于django外键设置的问题
进行一对多表的增删改查的时候,新版django2.0在设置外键的时候要新增一个on_set参数,网上的资料: 在django2.0后,定义外键和一对一关系的时候需要加on_delete选项,此参数为了 ...
- Django外键约束
ORM外键约束 from django.db import models# 出版社 class Publisher(models.Model):id = models.AutoField(primar ...
- Django外键关系:一对一、一对多,多对多
1. 一对多 model.py class UserTest(models.Model):name = models.CharField(max_length = 16 )sex = models.C ...
最新文章
- java ide 进行图形化界面时不能显示汉字_主流开源IDE汇总,Java程序员一定能用上!...
- Markdown 如何实现空行、空格?
- 【opencv】图像细化
- 计算机和hdmi无法正常显示,HDMI都不灵 为什么电脑连电视效果差?
- Vertx编程风格:您的反应式Web Companion REST API解释了
- 在kali Linux中搭建DVWA
- 【NOIP2017模拟6.25】小W的动漫
- DMN结合bpmn简化流程_07
- 不想做科技第一的金融公司,不是好的养老去处
- surface mesh framework运行
- 原生JS大揭秘—事件循环机制Event Loop
- 爬虫实例十一 全国城市房价排行
- ZZULIoj 1913: 小火山的计算能力
- .Net向Page和UpdatePanel输出JS
- python植物大战僵尸代码
- Chrome OS 初体验
- 有什么软件测试固态硬盘,SSD差距有多大?两款主流NVMe固态硬盘测试,一看就包懂...
- Xms Xmx PermSize MaxPermSize 区别
- ArcGIS遇到严重的应用程序错误的解决办法
- linux无法安装at命令,在Ubuntu/Debian/CentOS/Fedora下安装At及各种At命令的用法