Python django:模板如何查询两个数据表
使用django:我有2个相同的数据库表需要同意页面显示,不知道如何运行它 django views.py:Python django:模板如何查询两个数据表,python,mysql,django,Python,Mysql,Django,使用django:我有2个相同的数据库表需要同意页面显示,不知道如何运行它 django views.py: from django.shortcuts import render from book.models import article, update from django.http import HttpResponse from django.template import RequestContext, loader from django.shortcuts import re
from django.shortcuts import render
from book.models import article, update
from django.http import HttpResponse
from django.template import RequestContext, loader
from django.shortcuts import render_to_response
# Create your views here.
def home(request):
return HttpResponse("Hello world!")
def article_list(request, id):
articles = article.objects.get(id = id)
return render_to_response('article.html', {'article':articles})
def title_list(request, id):
updates = update.objects.filter(bookid = id)
return render_to_response('article.html', {'update':'updates'})
以及URL.py:
from django.conf.urls import patterns, include, url
from book import views
#, article, update
from django.contrib import admin
admin.autodiscover()
from django.conf import settings
urlpatterns = patterns('',
url(r'^templates/(?P<path>.*)$',
'django.views.static.serve',
{'document_root': '/home/hugo/sobook/book/templates'}),
url(r'^$', views.home, name='home'),
# url(r'^blog/', include('blog.urls')),
url(r'^b/(\d{1,9})/$', views.article_list, name='article_list'),
url(r'^b/(\d{1,9})/$', views.title_list, name='title_list'),
url(r'^admin/', include(admin.site.urls)),
)
和模板:article.html:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<link href="/templates/screen.css" rel="stylesheet" type="text/css" media="screen" />
<title>{{article.name}}</title>
</head>
<body>
<h1>{{article.name}}</h1>
<ul><li><img src='{{article.img_url}}' width="100px"/></li>
<li>作者:{{article.author}} </li>
<li>简介: {{article.intro}}</li>
<li>入库时间:{{article.time|date:"F j, Y" }}</li>
<li>小说状态:{{article.state}}</li>
<li><a href="{{article.page_url}}" title="{{article.name}}">{{article.page_title}}</a></li>
</ul>
<div class="list">
<table border="1">
<tr>
<th>最新章节</th>
<th>来源</th>
<th>更新时间:{{ title_list.page_title }}</th>
</tr>
{% for person in title_list %}
<tr>
<td><a href="{{ person.page_url }}">{{ person.page_title }}</a></td>
<td>{{ person.sitename }}</td>
<td>{{ person.time }}</td>
</tr>
{% endfor %}
</table>
</div>
</body>
</html>
访问时:
localhost/b/12/
views.py title\u列表
未显示查询?其他一切正常。视图中有一个错误
from django.shortcuts import render
from book.models import article, update
from django.http import HttpResponse
from django.template import RequestContext, loader
from django.shortcuts import render_to_response
# Create your views here.
def home(request):
return HttpResponse("Hello world!")
def article_list(request, id):
articles = article.objects.get(id = id)
return render_to_response('article.html', {'article':articles})
def title_list(request, id):
updates = update.objects.filter(bookid = id)
# You are passing the string 'updates' along instead of the queryset
#return render_to_response('article.html', {'update':'updates'})
return render_to_response('article.html', {'update':updates})
此外,您的视图还需要一个名为title_list的变量,但是没有提供该变量,可能您的意思是更新
在模板中,您将title_列表作为更新实例和查询集引用。
您有{title_list.page_title}和{%for person in title_list%}这不太可能是您创建的实际对象,很可能是一个错误
在URL中,您还为同一路径放弃了两个视图。这根本不可能。每个URL都必须指向一个视图。不能将多个视图分配给同一URL
url(r'^b/(\d{1,9})/$', views.article_list, name='article_list'),
url(r'^b/(\d{1,9})/$', views.title_list, name='title_list'),
URL不能指向两个视图。这毫无意义。我需要为这两个视图分配相同的URL,你能举个例子吗。我只是练了一下django有些地方不熟悉,想纠正我,谢谢!请详细说明您希望视图实现的功能?文章和更新之间的链接是什么。他们为什么要共享同一个URL?你就不能合并成一个视图吗?就像这样,我有一本小说,这本小说有很多章节。这本小说,我所有方面的信息,如:作者,更新时间和小说介绍创建一个表:文章,每章一本小说创建一个表:updatec可以更改为其他名称,我希望在一个视图中显示信息并更新小说的章节
url(r'^b/(\d{1,9})/$', views.article_list, name='article_list'),
url(r'^b/(\d{1,9})/$', views.title_list, name='title_list'),