django模板/文件名太长错误/获取模型对象时

时间:2017-07-04 11:45:01

标签: python django django-templates

我收到一个像这样的错误:

IOError at /url/
[Errno 36] File name too long: "/app/.heroku/python/lib/python2.7/site-packages/django/contrib/admin/templates/

    <user_prefs: user_prefs object>,<user_prefs: user_prefs object>,<user_prefs: user_prefs object> etc..

我的views.py看起来像这样

def show_interests(request):
    current_user = request.user.id
    output = user_prefs()
    output.save()
    outputs = user_prefs.objects.all().filter(userID=current_user)
    return render('showme.html',{'outputs':outputs})

和我的模板(我使用一个非常基本的html表单来测试现在的东西。)

<!DOCTYPE html>
<html lang="en">
    <meta charset="UTF-8">
    <title>Hi, it's a test</title>
    {% for outputs in output %}
    {{ outputs.Cuisine }}
    {{ outputs.Cuisine1 }}
    {{ outputs.LunchPref }}
    {{ outputs.DinnerPref }}
    {{ outputs.Friday }}
    {{ outputs.Sunday }}
    {% endfor %}
<body>

</body>
</html>

从来没有见过像这样的错误,而我的其他模型我工作得很好。

2 个答案:

答案 0 :(得分:2)

return render(request, 'showme.html',{'outputs':outputs})

您错过了request及其强制性

中的render参数

并在模板中更改此内容

{% for output in outputs %}
    {{ output.Cuisine }}
    {{ output.Cuisine1 }}
    {{ output.LunchPref }}
    {{ output.DinnerPref }}
    {{ output.Friday }}
    {{ output.Sunday }}
{% endfor %}

答案 1 :(得分:1)

你认为有几个错误,

  • 正如@Exprator指出的那样,错过了Java was started but returned exit code = 4 参数。
  • 您的上下文变量的名称为request,但在您的模板中,您已编写outputs(可能只是一个错字)。
  • 每次访问此页面时都会创建一个对象。可能,你不希望这样。