[英]Why am I getting this NoCredentialsError on a Django project?
I'm currently working on a project built on Django that uses Wagtail for template managing. 我目前正在开发一个基于Django的项目,该项目使用Wagtail进行模板管理。
I created a model, that uses a Streamfield, which is basically a field similar to RickTextField that allows you to insert predefined or custom blocks and arranged them in the order you like. 我创建了一个使用Streamfield的模型,该模型基本上是一个类似于RickTextField的字段,该字段允许您插入预定义的或自定义的块并以所需的顺序排列它们。
I made a couple of custom blocks which consists in simple HTML pieces with the corresponding placeholders. 我做了几个自定义块,其中包含带有相应占位符的简单HTML片段。
Anyway, when trying to use a specific block, it yells this error: 无论如何,当尝试使用特定的块时,它会大喊这个错误:
The error as text: 错误为文字:
Environment:
Request Method: GET
Request URL: //localhost:3000/articles/test-title/
Django Version: 1.10.4
Python Version: 2.7.13
Installed Applications:
('collectfast',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.messages',
'whitenoise.runserver_nostatic',
'django.contrib.staticfiles',
'django.contrib.sites',
'django.contrib.redirects',
'taggit',
'modelcluster',
'storages',
'wagtail.wagtailcore',
'wagtail.wagtaildocs',
'wagtail.wagtailsnippets',
'wagtail.wagtailusers',
'wagtail.wagtailimages',
'wagtail.wagtailembeds',
'wagtail.wagtailsearch',
'wagtail.wagtailredirects',
'wagtail.wagtailforms',
'wagtail.wagtailsites',
'wagtail.contrib.wagtailsitemaps',
'btcmag',
'user_sessions',
'wagtail.wagtailadmin',
'wagtail.contrib.modeladmin',
'wagtail.contrib.wagtailfrontendcache',
'admin_honeypot',
'django_otp',
'django_otp.plugins.otp_static',
'django_otp.plugins.otp_totp',
'otp_yubikey',
'two_factor',
'cachalot',
'wagtail.contrib.wagtailstyleguide')
Installed Middleware:
('django.middleware.cache.UpdateCacheMiddleware',
'django.middleware.security.SecurityMiddleware',
'whitenoise.middleware.WhiteNoiseMiddleware',
'django.middleware.common.CommonMiddleware',
'user_sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django_otp.middleware.OTPMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'wagtail.wagtailcore.middleware.SiteMiddleware',
'wagtail.wagtailredirects.middleware.RedirectMiddleware',
'django.contrib.redirects.middleware.RedirectFallbackMiddleware',
'genesis.settings.custom.UserBasedExceptionMiddleware')
Template error:
In template C:\BTC\btcmag\btcmag\templates\blocks\featured_left_aligned_image.html, error at line 2
Unable to locate credentials 1 : {% load wagtailimages_tags %}
2 : {% image self.image original as page_image %}
3 :
4 : <div class="container py-4">
5 : <div class="col-12 mx-auto">
6 : <div class="featured-content row">
7 : <div class="col">
8 : <div class="featured-highlight-module"
9 : style="background-image: url({{ page_image.url }})">
10 : </div>
11 : </div>
12 : <div class="col">
Traceback:
File "C:\Users\Pablo\Envs\btcmag\lib\site-packages\django\core\handlers\base.py" in _get_response
215. response = response.render()
File "C:\Users\Pablo\Envs\btcmag\lib\site-packages\django\template\response.py" in render
109. self.content = self.rendered_content
File "C:\Users\Pablo\Envs\btcmag\lib\site-packages\django\template\response.py" in rendered_content
86. content = template.render(context, self._request)
File "C:\Users\Pablo\Envs\btcmag\lib\site-packages\django\template\backends\jinja2.py" in render
71. return self.template.render(context)
File "C:\Users\Pablo\Envs\btcmag\lib\site-packages\jinja2\environment.py" in render
989. return self.environment.handle_exception(exc_info, True)
File "C:\Users\Pablo\Envs\btcmag\lib\site-packages\jinja2\environment.py" in handle_exception
754. reraise(exc_type, exc_value, tb)
File "C:\BTC\btcmag\btcmag\jinja2\btcmag\pages\featured.html" in top-level template code
1. {% extends "btcmag/base.html" %}
File "C:\BTC\btcmag\btcmag\jinja2\btcmag\base.html" in top-level template code
190. {% block body %}{% endblock body %}
File "C:\BTC\btcmag\btcmag\jinja2\btcmag\pages\featured.html" in block "body"
51. {{ page.body }}
File "C:\Users\Pablo\Envs\btcmag\lib\site-packages\markupsafe\_native.py" in escape
21. return s.__html__()
File "C:\Users\Pablo\Envs\btcmag\lib\site-packages\wagtail\wagtailcore\blocks\stream_block.py" in __html__
358. return self.stream_block.render(self)
File "C:\Users\Pablo\Envs\btcmag\lib\site-packages\wagtail\wagtailcore\blocks\base.py" in render
232. return self.render_basic(value, context=context)
File "C:\Users\Pablo\Envs\btcmag\lib\site-packages\wagtail\wagtailcore\blocks\stream_block.py" in render_basic
219. for child in value
File "C:\Users\Pablo\Envs\btcmag\lib\site-packages\wagtail\wagtailcore\blocks\base.py" in render
418. return self.block.render(self.value, context=context)
File "C:\Users\Pablo\Envs\btcmag\lib\site-packages\wagtail\wagtailcore\blocks\base.py" in render
240. return mark_safe(render_to_string(template, new_context))
File "C:\Users\Pablo\Envs\btcmag\lib\site-packages\django\template\loader.py" in render_to_string
68. return template.render(context, request)
File "C:\Users\Pablo\Envs\btcmag\lib\site-packages\django\template\backends\django.py" in render
66. return self.template.render(context)
File "C:\Users\Pablo\Envs\btcmag\lib\site-packages\django\template\base.py" in render
208. return self._render(context)
File "C:\Users\Pablo\Envs\btcmag\lib\site-packages\django\template\base.py" in _render
199. return self.nodelist.render(context)
File "C:\Users\Pablo\Envs\btcmag\lib\site-packages\django\template\base.py" in render
994. bit = node.render_annotated(context)
File "C:\Users\Pablo\Envs\btcmag\lib\site-packages\django\template\base.py" in render_annotated
961. return self.render(context)
File "C:\Users\Pablo\Envs\btcmag\lib\site-packages\wagtail\wagtailimages\templatetags\wagtailimages_tags.py" in render
88. rendition = get_rendition_or_not_found(image, self.filter)
File "C:\Users\Pablo\Envs\btcmag\lib\site-packages\wagtail\wagtailimages\shortcuts.py" in get_rendition_or_not_found
16. return image.get_rendition(specs)
File "C:\Users\Pablo\Envs\btcmag\lib\site-packages\wagtail\wagtailimages\models.py" in get_rendition
284. generated_image = filter.run(self, BytesIO())
File "C:\Users\Pablo\Envs\btcmag\lib\site-packages\wagtail\wagtailimages\models.py" in run
397. with image.get_willow_image() as willow:
File "c:\python27\Lib\contextlib.py" in __enter__
17. return self.gen.next()
File "C:\Users\Pablo\Envs\btcmag\lib\site-packages\wagtail\wagtailimages\models.py" in get_willow_image
180. image_file = storage.open(self.file.name, 'rb')
File "C:\Users\Pablo\Envs\btcmag\lib\site-packages\django\core\files\storage.py" in open
38. return self._open(name, mode)
File "C:\Users\Pablo\Envs\btcmag\lib\site-packages\storages\backends\s3boto3.py" in _open
424. f = self.file_class(name, mode, self)
File "C:\Users\Pablo\Envs\btcmag\lib\site-packages\storages\backends\s3boto3.py" in __init__
98. self.obj.load()
File "C:\Users\Pablo\Envs\btcmag\lib\site-packages\boto3\resources\factory.py" in do_action
505. response = action(self, *args, **kwargs)
File "C:\Users\Pablo\Envs\btcmag\lib\site-packages\boto3\resources\action.py" in __call__
83. response = getattr(parent.meta.client, operation_name)(**params)
File "C:\Users\Pablo\Envs\btcmag\lib\site-packages\botocore\client.py" in _api_call
251. return self._make_api_call(operation_name, kwargs)
File "C:\Users\Pablo\Envs\btcmag\lib\site-packages\botocore\client.py" in _make_api_call
526. operation_model, request_dict)
File "C:\Users\Pablo\Envs\btcmag\lib\site-packages\botocore\endpoint.py" in make_request
141. return self._send_request(request_dict, operation_model)
File "C:\Users\Pablo\Envs\btcmag\lib\site-packages\botocore\endpoint.py" in _send_request
166. request = self.create_request(request_dict, operation_model)
File "C:\Users\Pablo\Envs\btcmag\lib\site-packages\botocore\endpoint.py" in create_request
150. operation_name=operation_model.name)
File "C:\Users\Pablo\Envs\btcmag\lib\site-packages\botocore\hooks.py" in emit
227. return self._emit(event_name, kwargs)
File "C:\Users\Pablo\Envs\btcmag\lib\site-packages\botocore\hooks.py" in _emit
210. response = handler(**kwargs)
File "C:\Users\Pablo\Envs\btcmag\lib\site-packages\botocore\signers.py" in handler
90. return self.sign(operation_name, request)
File "C:\Users\Pablo\Envs\btcmag\lib\site-packages\botocore\signers.py" in sign
147. auth.add_auth(request)
File "C:\Users\Pablo\Envs\btcmag\lib\site-packages\botocore\auth.py" in add_auth
665. raise NoCredentialsError
Exception Type: NoCredentialsError at /articles/test-title/
Exception Value: Unable to locate credentials
My problem is that the issue doesn't say much to me and googling didn't help either. 我的问题是,该问题对我的意义不大,而使用Google谷歌搜索也无济于事。
From the look of it, the issue is a Boto(core) exception and not necessarily a Wagtail related issue. 从外观上看,该问题是Boto(核心)异常,不一定是与Wagtail相关的问题。 Could you verify that Botocore and Boto is configured correctly?
您可以验证Botocore和Boto配置正确吗?
More information on setting up Wagtail for S3 can be found in this blog: https://wagtail.io/blog/amazon-s3-for-media-files/ which also has a chapter on 'Preparing Wagtail for S3 Media Storage' 可以在以下博客中找到有关为S3设置Wagtail的更多信息: https : //wagtail.io/blog/amazon-s3-for-media-files/ ,其中还有一章“为S3媒体存储准备Wagtail”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.