我有3个数据库模型 - 学期,科和Notecard更新单个的Django模型字段
的Notecard模型具有“已知”字段,我使用作为已知的Notecard对象分类为“桩”(1)或未知(0):
class Notecard(models.Model):
notecard_name = models.CharField(max_length=50)
notecard_body = models.TextField()
section = models.ForeignKey(Section)
known = models.BooleanField()
我有两个视图 - known_list和unkown_list显示相应的桩(known_list下面供参考):
def known_list(request, section_name):
try:
section = Section.objects.get(section_name__iexact = section_name)
except Section.DoesNotExist:
raise Http404
known_list = Notecard.objects.filter(known=1, section=section)
paginator = Paginator(known_list, 1)
if known_list:
try:
page = int(request.GET.get('page', '1'))
except ValueError:
page = 1
try:
known = paginator.page(page)
except (EmptyPage, InvalidPage):
known = paginator.page(paginator.num_pages)
context = RequestContext(request)
return render_to_response('notecards/known.html', {"known": known}, context_instance=context)
else:
url = reverse('notecard_list', kwargs={'section_name': section_name})
return HttpResponseRedirect(url)
此视图带来在S ection_name从之前的视图中显示,以显示所有被点击的部分以及已知桩中的Notecard对象。
在下面的模板,你可以看到我的分页到notecards一个页面:
{% extends "base.html" %}
{% block content %}
<h1 class='title'><a href="/">NoteCards!</a></h1>
{% for notecard in known.object_list %}
<h1 class='notecard'>{{ notecard.notecard_name }}</h1>
<h3 class='notecard'>{{ notecard.notecard_body }}</h3>
{% endfor %}
<div class="pagination">
<span class="step-links">
{% if known.has_previous %}
<a class="navlink" href="?page={{ known.previous_page_number }}">previous</a>
{% endif %}
<span class="current">
Page {{ known.number }} of {{ known.paginator.num_pages }}
</span>
{% if known.has_next %}
<a class="navlink" href="?page={{ known.next_page_number }}">next</a>
{% endif %}
</span>
</div>
{% endblock %}
urls.py
urlpatterns += patterns('',
url(r'^(?P<section_name>[\w|\W]+)/unknown/$', unknown_list, name="unknown_list"),
url(r'^(?P<section_name>[\w|\W]+)/known/', known_list, name="known_list"),
url(r'^semester/(?P<semester_name>[\w|\W]+)/', section_list, name="section_list"),
url(r'^section/(?P<section_name>[\w|\W]+)/', notecard_list, name="notecard_list"),
url(r'^notecard/(?P<notecard_name>[\w|\W]+)/', notecard_detail, name="notecard_detail"),
url(r'^$', semester_list, name="semester_list"),
)
这么说,我想补充一个“发送到未知“按钮,这将允许用户将他们当前所在页面的记录卡发送到未知的桩上(只需将已知字段更改为= 0,从分页列表中移除记事卡,然后移至分页中的下一页) 。
我试过复制我的new_notecard视图,其中包含模型的完整形式,但我无法弄清楚如何更新单个字段。
我也尝试过使用queryset.update(),但无法弄清楚如何从特定的notecard捕获pk。
我一直试图弄清这一点在我自己一个多月,但我一直不成功。先谢谢你。
编辑:
好像我挂断拉动notecard的PK分页的每一页上。例如,如果我在分页的第3页 - 按“发送到未知”按钮时,如何识别我的视图中的记录卡并将其从已知(1)更新为未知(0)
感谢您的回复。 2件事..在视图中,我不确定从哪里导入HttpRedirect。我用HttpResponseRedirect对它进行了测试,以防万一它是一个错误,但是我得到这个错误:模板的第一行
经过一番修补之后,我明白了。谢谢你的帮助! – 2012-03-31 22:52:41
是的,在那里有一些错字,它是'HttpResponseRedirect'和'url'('reverse'是实现了'url'的python方法)纠正了答案:) – 2012-04-01 09:28:01