简单的Django程序给我带来麻烦

时间:2011-05-31 22:05:32

标签: python django

我经历了不少的django教程,我终于准备好自己出去了。但是,我的第一个非辅导程序是抛出一个错误,而且我已经敲了几天头。我希望它是一个非常noob的问题,因为,好吧,我。

当我使用此视图时

 def todo(request): 
        latest_list = Item.objects.all()
        return HttpResponse(latest_list) 

我得到了

conquer djangocan I do this?learn thislearn this

这是填充数据库的四个项目。由于它们是连接在一起的,所以并不是很方便,而且它们似乎不会被移交给模板。

当我更改view.py以尝试使用

与模板对话时
def todo(request):
        latest_list = Item.objects.all()
        return render_to_response,('index.html', {"latest_list", latest_list})

我得到了

'tuple' object has no attribute 'status_code'

是否正在返回'self.task'的模型将返回限制为仅该字段?我看过的其他教程似乎只返回一个值(返回'self'会给我一个非常类似的错误。

也可能是我没有传入

任何可以帮助我走上正确道路的帮助都将不胜感激。

格雷格

我的model.py


from django.db import models

class Item(models.Model):
    task = models.CharField(max_length=60)
    taskNotes = models.CharField(max_length=600)
    created = models.DateTimeField(auto_now_add=True)
    done = models.BooleanField(default=False)

    def __unicode__(self):
        return self.task

我的views.py


from django.shortcuts import render_to_response, get_object_or_404
from django.template import RequestContext
from django.http import HttpResponse
from myToDo.todo.models import Item

def todo(request): 
    latest_list = Item.objects.all()
    return HttpResponse(latest_list) 

我的index.html(模板)


{% if latest_list %}
    <ul>
    {% for task in latest_list %}
        <li>{{ Item.task }}</li>
    {% endfor %}
    </ul>
{% else %}
    <p>Looks like you're all done</p>
{% endif %}

2 个答案:

答案 0 :(得分:2)

return render_to_response,('index.html', {"latest_list", latest_list})

删除逗号affer render_to_response,你应该没问题。原因:逗号使返回值成为元组对象,但需要从视图中返回HttpResponse对象。

答案 1 :(得分:1)

您对return进行了蠢事。

def todo(request):
  latest_list = Item.objects.all()
  return render_to_response('index.html', {"latest_list", latest_list})

请注意函数名后缺少逗号。