【发布时间】:2014-09-11 02:16:50
【问题描述】:
class BillList(models.Model):
username = models.ForeignKey(User)
billno = models.CharField(max_length=15)
class OrderDetails(models.Model):
billno = models.ForeignKey(BillList)
orderdetails = models.TextField()
User 是django.contrib.auth.models 中的那个。
我需要检索特定用户的所有billno。如何在 Appengine 上的 Django-nonrel 中执行这个简单的查询?
如果我这样做:
iq = User.objects.filter(username = "name1")
BillList.objects.filter(username = iq)
然后我得到一个错误:DatabaseError: Subqueries are not supported.
如果我马上试试这个BillList.objects.filter(username = "restaurant1"),那么ValueError: invalid literal for long() with base 10: 'restaurant1'
我相信一定可以进行这个简单的查询!任何解决方法?
【问题讨论】:
-
我认为过滤器失败了,因为您没有将模型实例传递给它以进行过滤,而是传递一个作为模型一部分的字符串。尝试先获取代表“restaurant1”的模型,然后将该模型实例传递给过滤器。
-
如果您看到我的第一个示例,那正是我第一次尝试的方式。我检索了与
name1对应的User对象,然后尝试使用该对象过滤BillList。但似乎不支持这种类型的查询! -
不,这不是你所做的。您检索了与 name1 对应的用户的 查询集,并尝试使用该查询集进行过滤。但这不受支持。检索用户时使用
get而不是filter。
标签: django google-app-engine django-nonrel