Ada*_*Yui 5 python django django-templates django-models django-queryset
Django 新手,感觉我快要弄清楚我哪里出错了。我一直试图将上下文传递给我的模板,但无济于事。在模型中,我有:
class Rate(models.Model):
name = models.CharField(max_length = 140)
ratings = GenericRelation(Rating, related_query_name= 'object_list')
def __str__(self):
return self.id
Run Code Online (Sandbox Code Playgroud)
在视图中,
def RateList(request):
queryset = Rate.objects.filter(ratings__isnull=False).order_by('ratings__average')
context= {
"object_list": queryset,
"title": "List"
}
return render(request, 'UploadApp/upload.html', context)
Run Code Online (Sandbox Code Playgroud)
最后,在我的模板中,我{% ratings object_list %}按照文档将 HTML 放入了 HTML 中。不确定我是否只是忽略了一些小细节,但是'str' object has no attribute 'meta'当我尝试加载页面时出现错误。任何帮助表示赞赏,我在拉头发阶段
在方法__str__中,您返回self.id,但模型中没有名为id的字段,因此请像这样更新代码:
class Rate(models.Model):
name = models.CharField(max_length = 140)
ratings = GenericRelation(Rating, related_query_name= 'object_list')
def __str__(self):
return self.name
Run Code Online (Sandbox Code Playgroud)
另一件事是,您在上下文中传递的object_list是费率模型对象的列表:
{% ratings object_list %}
Run Code Online (Sandbox Code Playgroud)
这是显示/迭代数据的错误方法。
您在模板中实际需要的是:
{% for item in object_list %}
{{ item.name }} and {{ item.ratings }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2007 次 |
| 最近记录: |