我试图在查询集中的特定字段上运行一个函数,然后将其发送到模板进行渲染。
我有以下模型。
class Customer(models.Model):
name = models.CharField(max_length=255)
class Device(models.Model):
cid = models.ForeignKey(Customer, on_delete=models.CASCADE)
name = models.CharField(max_length=255)
oid = models.TextField(null=True)
我有以下观点,我试图在oid的queryset字段上运行checkStatus函数,但每次运行时都会得到以下错误,“info”是checkStatus函数返回的值。
错误
TypeError: QuerySet.annotate() received non-expression(s): info.
views.py(示例网站)
def device_detail(request, cid):
customers = models.Customer.objects.all()
customer_details = get_object_or_404(models.Customer, id=cid)
device_details = customer_details.device_set.all()
device_details.annotate(checkStatus("oid"))
return render(request, 'devices/detail.html', {
'device_details': device_details
})
1条答案
按热度按时间qpgpyjmq1#
您对annotate()方法的使用似乎不正确。您应该查看有关annotate()方法的文档
由于你还没有展示关于你的函数checkStatus()的代码,我不确定我的建议,但我猜这应该作为一个示例方法而不是一个自由函数实现。可能是这样的:
只是个想法