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连接表所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)