2017-03-15 22 views
0

我目前正在构建一个使用W for进行模板管理的Django项目。为什么我在Django项目上得到这个NoCredentialsError?

我创建了一个模型,它使用Streamfield,它基本上是一个类似于RickTextField的字段,允许您插入预定义或自定义块并按您喜欢的顺序排列它们。

我做了几个自定义块,它包含简单的HTML片断和相应的占位符。

无论如何,试图用一个特定块时,喊这个错误:

enter image description here

错误文本:

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 

我的问题是,这个问题不说对我来说很重要,并且使用谷歌搜索也没有帮助。

+1

追溯为文本而不是图像请张贴的一章。 – Alasdair

+0

您是否试图从Amazon S3加载图像?如果是这样,你还没有设置你的S3凭证。 http://stackoverflow.com/questions/31268177/django-boto3-nocredentialserror-unable-to-locate-credentials – themanatuf

+0

@Alasdair,刚刚添加它 – user1869935

回答

2

从它的外观来看,问题是Boto(核心)异常,而不一定是W related相关的问题。你能证实Botocore和Boto配置正确吗?

对S3设置鹡鸰更多信息可以在这个博客上找到: https://wagtail.io/blog/amazon-s3-for-media-files/其中也有对“准备鹡鸰为S3介质存储”