简体   繁体   English

为什么我在Django项目上收到此NoCredentialsError?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM