2017-03-15 3 views
0

Ich arbeite derzeit an einem Projekt, das auf Django basiert und Wagtail für die Vorlagenverwaltung verwendet.Warum bekomme ich diesen NoCredentialsError bei einem Django-Projekt?

Ich habe ein Modell erstellt, das ein Streamfield verwendet, das im Grunde ein ähnliches Feld wie RickTextField ist, mit dem Sie vordefinierte oder benutzerdefinierte Blöcke einfügen und in der von Ihnen gewünschten Reihenfolge anordnen können.

Ich habe ein paar benutzerdefinierte Blöcke, die in einfachen HTML-Stücken mit den entsprechenden Platzhaltern besteht.

Wie auch immer, wenn einen bestimmten Block zu verwenden versucht, brüllt es diesen Fehler:

enter image description here

den Fehler als 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 

Mein Problem ist, dass das Problem nicht sagen, viel zu mir und googeln hat auch nicht geholfen.

+1

Bitte senden Sie das Zurückverfolgungs als Text anstelle eines Bildes. – Alasdair

+0

Versuchen Sie, Ihr Bild von Amazon S3 zu laden? Wenn dies der Fall ist, haben Sie Ihre S3-Anmeldeinformationen nicht festgelegt. http://stackoverflow.com/questions/31268177/django-boto3-nocredentialserror-unable-to-locate-credentials – themanatuf

+0

@Alasdair, gerade hinzugefügt – user1869935

Antwort

2

Aus der Sicht des Problems ist das Problem eine Boto (Core) -Ausnahme und nicht unbedingt ein Wagtail-Problem. Könnten Sie überprüfen, ob Botocore und Boto richtig konfiguriert sind?

Mehr Informationen über Bachstelze für S3 Einrichtung kann in diesem Blog: https://wagtail.io/blog/amazon-s3-for-media-files/ die auch ein Kapitel hat auf ‚Vorbereitung Bachstelze für S3 Media Storage‘

Verwandte Themen