Django:列出并显示数据库中的数据

时间:2019-03-06 08:13:22

标签: python django

我发现了一个代码,其中Django中的url可以包含一个模型,因此它可以直接将db值显示为html,但是当我尝试使用该代码时,我在url中遇到了一些错误,因为该代码仍使用模式,是否正确?可以在更新的Django中做这件事吗?

网址

from django.views.generic import ListView
from django.conf.urls import patterns, url

urlpatterns = patterns("myapp.views",
   url(r'^dreamreals/', ListView.as_view(
      template_name = "dreamreal_list.html")),
      model = Dreamreal, context_object_name = ”dreamreals_objects” ,)

HTML

{% extends "main_template.html" %}
{% block content %}
Dreamreals:<p>
{% for dr in object_list %}
{{dr.name}}</p>
{% endfor %}
{% endblock %}

1 个答案:

答案 0 :(得分:0)

我很确定您输入的内容都是ListView.as_view()方法的花哨之处。

所以不要这样做

ListView.as_view(
      template_name = "dreamreal_list.html")),
      model = Dreamreal, context_object_name = ”dreamreals_objects” ,)

实际上在语法上是错误的,请执行以下操作:

ListView.as_view(
      template_name = "dreamreal_list.html",
      model = Dreamreal,
      context_object_name = ”dreamreals_objects”
)

第二个错误,您正在将context_object_name设置为dreamreals_objects,但是在模板中,您正在object_list上进行迭代。

但是这种方法并不是真正的“漂亮”方法,您应该真正用自己的视图制作一个views.py,然后urls.py应该只关心制作一条路线。 正如评论中指出的那样,django 2.1+不再使用urlpatterns而是pathhttps://docs.djangoproject.com/en/2.1/topics/http/urls/#example