我在使用MySQL数据库的Django中遇到了一个查询问题,由于我是新手,我遇到了解决问题。
我有2个型号,区域和表格。 区域可能有1个或多个与之关联的表单,因此它与表单具有外来关系:
form = models.ManyToManyField(Form)
在我的一个Django Views中,我希望从数据库中获取所有与#34;无区域"(即不与任何区域相关联)的表单,并在模板中使用它们。
例如,如果我像这样查询数据库(轮询是应用程序名称):
SELECT `polls_area_form`.`id`,
`polls_area_form`.`area_id`,
`polls_area_form`.`form_id`
FROM `myproject`.`polls_area_form`;
我明白了:
id area_id form_id
1 1 1
2 1 3
3 2 3
显示在此示例场景中,区域1与表单1和3相关联。区域2与表单3相关联。因此,我在此处由于未与任何区域关联而需要检索表单2。
在我的视图中,在一个简单的情况下,有人想要检索所有表单,无论如何,我只需使用all_forms = Form.objects.filter()
(Python),然后使用它来呈现我对请求的响应。
我无法弄清楚在这种情况下过滤器应该是什么,或者在这里是否需要实际的SQL语句。
通过阅读Django文档,我觉得我可能需要在过滤器之后使用.exclude(some rule)
,但我不知道它的规则是什么样的。
答案 0 :(得分:1)
我认为你应该能够做到
ThreeDeeTouch.watchForceTouches(function(result) {
console.log("force touch % " + result.force); // 84
console.log("force touch timestamp " + result.timestamp); // 1449908744.706419
console.log("force touch x coordinate " + result.x); // 213
console.log("force touch y coordinate " + result.y); // 41
});
假设您的区域类名为Form.objects.filter(area=None)
并且尚未添加自定义Area
答案 1 :(得分:1)
你可以试试这个。
Form.objects.filter(area__isnull=True)