我想要添加最后5个项目。 我真的不知道该怎么做。 我尝试了reverse()函数。 限制我使用的查询[:5]
额外的问题:请求上下文是什么? 我不懂djangodocs
模型:
class Topic(models.Model): user = models.ForeignKey(User) postit = models.TextField(max_length=300) comment = models.TextField(max_length=300) createdat = models.DateTimeField(default=timezone.now) def timer(self): return self.createdat def who(self): return self.user def __str__(self): # __unicode__ on Python 2 return self.postit视图:
def chat(request): if request.method == 'POST': form = StoryForm(request.POST) if form.is_valid(): storyi = form.save(commit=False) storyi.user = request.user storyi.save() return HttpResponseRedirect('/chat/') else: form=StoryForm() try: p = Topic.objects.all()[:5].reverse() ) except ObjectDoesNotExist: p= "don't try it again" return render(request,'chat/chat.html',{'form': form, 'p':p})I am trying to get last 5 items added. I really don't know how to do this. I tried the reverse() function . to limit the query i used [:5]
extra question: whats the request context for? i didn't understand djangodocs
model:
class Topic(models.Model): user = models.ForeignKey(User) postit = models.TextField(max_length=300) comment = models.TextField(max_length=300) createdat = models.DateTimeField(default=timezone.now) def timer(self): return self.createdat def who(self): return self.user def __str__(self): # __unicode__ on Python 2 return self.postitView:
def chat(request): if request.method == 'POST': form = StoryForm(request.POST) if form.is_valid(): storyi = form.save(commit=False) storyi.user = request.user storyi.save() return HttpResponseRedirect('/chat/') else: form=StoryForm() try: p = Topic.objects.all()[:5].reverse() ) except ObjectDoesNotExist: p= "don't try it again" return render(request,'chat/chat.html',{'form': form, 'p':p})最满意答案
如果最后一个添加你的意思是列表中的最后一个,它应该是[-5:]。 例如:
In [22]: a =[1,2,3,4,5,6,7,8,9,10] In [23]: a[:5] Out[23]: [1, 2, 3, 4, 5] In [26]: a[-5:] Out[26]: [6, 7, 8, 9, 10]你对RequestContext有什么兴趣? RequestContext将返回特定值作为响应。 例:
def my_view(request): # View code here... t = loader.get_template('myapp/index.html') c = RequestContext(request, {'foo': 'bar'}) return HttpResponse(t.render(c))在这里,您返回带有渲染值的'index.html'模板{'foo':''bar}
更新:在您的情况下,您可以像这样使用RequestContext:
return render(request,'chat / chat.html',{'form':form,'p':p})
......
template = loader.get_template('chat/chat.html') c=RequestContext(request, {'form': form, 'p':p}) return HttpResponse(template.render(c))If last added you mean last in list, it should be [-5:]. for example:
In [22]: a =[1,2,3,4,5,6,7,8,9,10] In [23]: a[:5] Out[23]: [1, 2, 3, 4, 5] In [26]: a[-5:] Out[26]: [6, 7, 8, 9, 10]What exactly are you interest in RequestContext? RequestContext is to return specific values in response. Example:
def my_view(request): # View code here... t = loader.get_template('myapp/index.html') c = RequestContext(request, {'foo': 'bar'}) return HttpResponse(t.render(c))Here you return 'index.html' template with rendered values {'foo':''bar}
UPDATE: In your case you can use RequestContext like this:
return render(request,'chat/chat.html',{'form': form, 'p':p})
......
template = loader.get_template('chat/chat.html') c=RequestContext(request, {'form': form, 'p':p}) return HttpResponse(template.render(c))更多推荐
发布评论