之前在图书管理中是通过手工填写来添加借阅人的,现在改为选择系统里已有的借阅人来添加。
具体操作如下:
1. 修改操作
在“library/book/views.py”中添加如下代码:
def searchback(request):
readers = Reader.objects.order_by('name')
paginator = Paginator(readers, 10)
page = request.POST.get('pageNum', 1)
try:
if int(page) > paginator.num_pages:
page = str(paginator.num_pages)
readers = paginator.page(page)
except (EmptyPage, InvalidPage):
readers = paginator.page(paginator.num_pages)
return render_to_response('book/searchback.html', {'readers':readers, 'currentPage':page, 'numPerPage':5 })
def searchbacksch(request):
if 'q' in request.POST and request.POST['q']:
q = request.POST['q']
readers = Reader.objects.filter(name__icontains = q)
else:
readers = Reader.objects.order_by('name')
paginator = Paginator(readers, 10)
page = request.POST.get('pageNum', 1)
try:
if int(page) > paginator.num_pages:
page = str(paginator.num_pages)
readers = paginator.page(page)
except (EmptyPage, InvalidPage):
readers = paginator.page(paginator.num_pages)
return render_to_response('book/searchback.html', {'readers':readers, 'currentPage':page, 'numPerPage':5})
修改“library/book/views.py”中“editBook()”的代码如下:
def editBook(request, id):
book = get_object_or_404(Book, pk=int(id)) # 404:服务器找不到指定的资源
if request.POST:
book.name = request.POST.get('name', None)
book.press = request.POST.get('press', None)
book.author = request.POST.get('author', None)
book.publicationTime = request.POST.get('publicationTime', None)
account = request.POST.get('org.account', None)
reader = Reader.objects.get(account__exact = account)
book.reader = reader;
book.save()
return HttpResponse(simplejson.dumps({"statusCode":200, "navTabId":request.POST.get('navTabId', 'bookindex'), "callbackType":request.POST.get('callbackType', 'closeCurrent'), "message":u'编辑书本信息成功', "info":u'编辑书本信息成功'}), mimetype='application/json')
return render_to_response('book/edit.html', {'book': book})
2. 修改“urls.py”
在“library/book/urls.py”的“patterns()”中添加代码:
url(r'^searchback/$', 'book.views.searchback',name="books_searchback"),
url(r'^searchbacksch/$', 'book.views.searchbacksch',name="books_searchbacksch"),
3. 添加借阅人查询界面
在“library/templates/book”下新建“searchback.html”,代码如下:
<form id="pagerForm" action="{% url books_searchback %}" method="post">
<input type="hidden" name="pageNum" value="{{ currentPage }}" />
<input type="hidden" name="numPerPage" value="{{ numPerPage }}" />
<input type="hidden" name="account" value=""/>
</form>
<script type="text/javascript">
if(typeof(dwzinit)=='undefined') {
self.location="/"
}
</script>
<div class="page">
<div class="pageHeader">
<form rel="pagerForm" method="post" action="{% url books_searchbacksch %}" onsubmit="return dwzSearch(this, 'dialog');">
<div class="searchBar">
<ul class="searchContent">
<li>
<label>姓名:</label>
<input type="text" name="q" />
</li>
</ul>
<div class="subBar">
<ul>
<li><div class="buttonActive"><div class="buttonContent"><button type="submit">查询</button></div></div></li>
</ul>
</div>
</div>
</form>
</div>
<div class="pageContent">
<table class="table" layoutH="118" targetType="dialog" width="100%">
<thead>
<tr>
<th width="7%" align="center">序号</th>
<th orderfield="account">账号</th>
<th orderfield="name">姓名</th>
<th orderfield="email">邮箱</th>
<th orderfield="contact">联系方式</th>
<th width="80" >查找带回</th>
</tr>
</thead>
<tbody>
{% for reader in readers.object_list %}
<tr>
<td>{{ forloop.counter }}</td>
<td>{{ reader.account }}</td>
<td>{{ reader.name }}</td>
<td>{{ reader.email }}</td>
<td>{{ reader.contact }}</td>
<td>
<a class="btnSelect" href="javascript:$.bringBack({account:'{{ reader.account }}'})" title="查找带回">选择</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
<div class="panelBar">
<div class="pages">
<span>共{{ readers.paginator.count }}条</span>
</div>
<div class="pagination" targetType="dialog" totalCount="{{ readers.paginator.count }}" numPerPage="{{ readers.paginator.per_page }}" pageNumShown="10" currentPage="{{ currentPage }}"></div>
</div>
</div>
</div>
注意:“account”名称要统一。4. 修改图书编辑界面
修改“library/templates/book/edit.html”,将原代码:
<div>
<label>借阅人</label>
<input type="text" class="required" size="30" name="reader" value="{{ book.reader.name}}"/>
</div>
替换为:
<dl class="nowrap">
<dt>借阅人:</dt>
<dd>
<input size="30" id="reader" name="org.account" readonly="readonly" type="hidden" />
<input size="30" name="org.account" type="text" readonly="readonly" value="{{ book.reader.account }}" lookupGroup="org" />
<a class="btnLook" href="{% url books_searchback %}" target="dialog" mask="true" width="600" height="400" title="查找带回" lookupGroup="org">查找带回</a>
<span class="info">(查询关联的设备)</span>
</dd>
</dl>
5.运行
在图书管理页中,点击某一图书信息的“编辑”操作进入如图所示页面:
点击进入查询页,如下图所示:
在此页面可以直接翻页查找,也可以通过输入借阅人姓名“查询”。点击借阅人的选中借阅人。