如何在views.py中的python函数中,通过定义的方法-get_absolute_url通过Django ORM Queryset访问值/字符串。
def get_absolute_url(self):
"""Returns the url to access a particular instance of the model."""
return reverse('model-detail-view', args=[str(self.id)])
上面的代码是Mozilla开发人员网络的示例。对于以下提到的Queryset中的模型的每个实例,如何访问-model-detail-view
。
我下面的代码没有给出任何结果,而是ERROR ==
queryset = myModel.objects.get_absolute_url()
AttributeError:“管理器”对象没有属性“ get_absolute_url”
再次尝试使用reverse
方法的返回值也会失败,并出现类似的AttributeError。
queryset = myModel.objects.model-detail-view()
AttributeError:“ Manager”对象没有属性“ model-detail-view”
想要获取个人“模型详细视图”字符串,并将其作为python DF的一部分传递给dataTable.js,并进一步作为JSON传递。
答案 0 :(得分:1)
myModel.objects
是Manager,而不是该模型类的实例。您需要先获得一个实例,例如:
instance = myModel.objects.get(pk=1)
instance.get_absolute_url()
如果您希望整个查询集都具有此结果,则可以使用:
urls = [obj.get_absolute_url() for obj in myModel.objects.all()]
这只是一个起点。您可能需要对上述内容进行分页,否则它将是非常昂贵的查询。如果您希望以更强大的方式使用Django Rest Framework serializers,则可以考虑。
答案 1 :(得分:0)
再次感谢@nimasmi,我现在可以访问我的模型实例的绝对URL,如此处所示,主键经过硬编码以测试您的代码==