Django 一个简单的图书管理程序(五 通过查询添加借阅人)

来源:互联网 发布:js 删除指定的tr 编辑:程序博客网 时间:2024/04/30 05:54

之前在图书管理中是通过手工填写来添加借阅人的,现在改为选择系统里已有的借阅人来添加。

具体操作如下:

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.运行

在图书管理页中,点击某一图书信息的“编辑”操作进入如图所示页面:


点击进入查询页,如下图所示:


在此页面可以直接翻页查找,也可以通过输入借阅人姓名“查询”。点击借阅人的选中借阅人。