python - Django 在模板中显示 render_to_response

标签 python django views render-to-response

您好,提前谢谢您。

我知道这是一个完全菜鸟的问题,我已经在各种论坛中进行了搜索,并阅读并重新阅读了文档,所以请保持温和。

我有一个观点:

#views.py

from django.shortcuts import render_to_response
from django.shortcuts import render
from django.http import HttpResponse, HttpRequest, HttpResponseRedirect
from acme.acmetest.models import Player
from acme.acmetest.models import PickForm

def playerAdd(request, id=None):
    form = PickForm(request.POST or None,
                       instance=id and Player.objects.get(id=id))

    # Save new/edited pick
    if request.method == 'POST' and form.is_valid():
        form.save()
        return HttpResponseRedirect('/draft/')

    #return render_to_response('makepick.html', {'form':form})
    return render(request, 'makepick.html', {'form':form})

def draftShow(request):
    draft_list = ['1', 'hello', 'test', 'foo', 'bar']
    #draft_list = Player.objects.all()
    #return render_to_response('makepick.html', {'draft_list' :draft_list}, context_instance=RequestContext(request))
    return render_to_response('makepick.html', {'draft_list' :draft_list})

我试图让它呈现为模板 .html 页面:

#makepick.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML lang="en">
<head>
    <title>Pick</title>
</head>
<body>

    <form method="POST" action="">
        {% csrf_token %}
        <table>{{ form }}</table>
        <input type="submit" value="Draft Player" 
    </form><br /><br /> 

Your picks so far:<br />
{% for draft in draft_list %}
    {{ draft.playernumber }}
{% endfor %}

</body>
</HTML>

其中 playernumber 是 models.py 中模型类“Player”中的字段。

#urls.py

from django.conf.urls.defaults import patterns, include, url
from acme.acmetest import views


urlpatterns = patterns('',
    ('^$', 'acme.acmetest.views.playerAdd'),
)

感谢您的帮助!

dp

最佳答案

嗯,看起来您的模板渲染正常。因此,您必须查看 draft_list 是否真的包含任何内容,以及每个被抓取的对象的 playernumber 是什么。

在项目的根目录下,运行:

python manage.py shell

现在您在 shell 中,要测试您的数据库中是否真的有任何 Player 对象,并查看每个对象的 playernumber 属性返回什么:

from acme.acmetest.models import Player
draft_list = Player.objects.all()
for draft in draft_list:
    print draft.playernumber

关于python - Django 在模板中显示 render_to_response,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9200880/

相关文章:

python - Django Tastypie 不使用 ManyToManyField 更新资源

sql - 如何检查Oracle中的数据库对象是表还是 View

drupal - 在相同的 View 页眉或页 footer 分访问 Drupal View 参数。

Python txt 文件字数统计程序

Python-类型错误 : iterable argument required

python - 在后台运行特定的 Django 脚本

grails - 在Grails中,如何捕获g:select中的多个选定项?

python - PyQt5如何将QLabel更新为动画

python - 将句子拆分为单词并将情感极性重新应用于每个单词时如何维护索引?

django - python-social-auth 未获取正确的 Google OAuth2 详细信息