python – 用django连接表

python – 用django连接表,第1张

概述queryObj = Rating.objects.select_related( 'Candidate','State','RatingCandidate','Sig','Office','OfficeCandidate').get( rating_id = ratingId, ratingcandidate__rating = ratingId,
queryObj = rating.objects.select_related(    'CandIDate','State','ratingCandIDate','Sig','Office','OfficeCandIDate').get(        rating_ID = ratingID,ratingcandIDate__rating = ratingID,ratingcandIDate__rating_candIDate_ID = \             officecandIDate__office_candIDate_ID)

这行给了我一个错误.我正在尝试使用主键和常规ID链接许多不同的表.最后一个选择是问题:

ratingcandIDate__rating_candIDate_ID = officecandIDate__office_candIDate_ID.

我需要跳过才能获得所有数据.

解决方法

I’m trying to get many different tables that are linked by primary keys and regular IDs.

不要试图“加入”表格.这不是sql.

您必须执行多次获取才能从许多不同的表中获取数据.

不要担心select_related,直到你可以证明你有瓶颈.

只需根据需要从各个类中进行各种GET.

让我们关注候选人和评级.

class rating( Model ):    ...class CandIDate( Model ):    rating = Models.ForeignKey( rating )

做这个.

r = rating.objects.get( ID=rating_ID )c = r.candIDate_set.all()

这将获得评级和所有具有该评级的候选人.这实际上是sql连接的内容:它是两次提取.在Django ORM中,只需尽可能简单地写两个提取.让Django(和你的数据库)为你缓存一些东西.

要在模板表单的单行中显示多个表的元素,请执行此 *** 作.

在视图中:

r = rating.objects.get( ID=rating_ID )return render_to_response( some_form,{ 'rating':r } )

在模板中:

rating: {{rating}}.  CandIDates: {% for c in rating.candIDate_set.all %} {{c}} {%endfor%}

等等.

您只需在模板中的对象中“导航”以显示所请求的信息.

总结

以上是内存溢出为你收集整理的python – 用django连接表全部内容,希望文章能够帮你解决python – 用django连接表所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1195103.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存