【发布时间】:2018-10-05 12:10:38
【问题描述】:
我收到以下错误:
OSError at /index/
[Errno 22] Invalid argument: 'C:\\Users\\username\\PycharmProjects\\DjangoTestS\\templates\\<django.template.backends.django.Template object at 0x00000262E5F2F2B0>'
我相信这是因为我的 django 代码找不到我的模板文件。 django中获取模板的代码如下:
index_model = loader.get_template('index.html')
我的模板字典如下:
'DIRS': [os.path.join(BASE_DIR, 'templates'),
'C:\\Users\\username\\PycharmProjects\\DjangoTestS',],
我尝试过的类似问题的解决方案:
将项目位置硬编码到模板字典中。最初它是一种通常应该找到任何项目的模板文件夹的方法,但这不起作用。硬编码的方式也不起作用。
一个 pycharm shell 帮助程序更改,将路径元素硬编码到 pycharm 项目文件夹。也没有用。
根据要求,这是导致错误的视图: def table_view(请求):
ip_address = get_client_ip(request)
browser = request.META['HTTP_USER_AGENT']
cur_visit = models.visit()
cur_visit.ip_address = ip_address
cur_visit.browser = browser
cur_visit.save()
index_model = loader.get_template('index.html')
all_visitors = models.visit.objects.all()
context = {'all_visitors': all_visitors}
return render(request, index_model, context)
def get_client_ip(request):
x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
if x_forwarded_for:
ip = x_forwarded_for.split(',')[0]
else:
ip = request.META.get('REMOTE_ADDR')
return ip
【问题讨论】:
-
你能把你的视图写在你试图渲染模板的地方吗?
-
@Gahan def table_view(request): ip_address = get_client_ip(request) browser = request.META['HTTP_USER_AGENT'] cur_visit = models.visit() cur_visit.ip_address = ip_address cur_visit.browser = browser cur_visit .save() index_model = loader.get_template('index.html') all_visitors = models.visit.objects.all() context = {'all_visitors': all_visitors} return render(request, index_model, context)
-
抱歉格式错误,不明白为什么格式不正确。
-
设置/模板中 DIRS 的内容是什么?我遇到了同样的问题,这是因为我的 DIRS。