解決したいこと
現在、Django製CMSであるWagtailを使用して、ZappaでAWS Lambdaにデプロイしてサイト制作をしています。
それで、WagtailでWebHooksを送りたいのですが、これにはDjangoのSignalsの仕組みを使って送る必要があるとのことです。
参考URL:http://docs.wagtail.io/en/v2.6.1/reference/signals.html#page-published
で、以下のコードをデプロイして動かすと、以下のようなエラーが出ます。
問題が発生するまでの流れ
- ソースコードをZappaにてデプロイ。
- Article Pageを作成
- 更新時トリガーが走る際にエラーが発生する
- なお記事は普通に作成されている
環境一覧
- Python 3.6.8
- Django 2.1.7
- Wagtail 2.6.1
- Zappa 0.48.2
現在のコード
Python3
1from http.client import responses 2from django.db import models 3 4from modelcluster.fields import ParentalKey 5from modelcluster.contrib.taggit import ClusterTaggableManager 6 7from taggit.models import TaggedItemBase 8 9from wagtail.core.models import Page, Orderable 10from wagtail.admin.edit_handlers import FieldPanel, MultiFieldPanel, InlinePanel, PageChooserPanel 11from wagtail.images.edit_handlers import ImageChooserPanel 12from wagtailmarkdown.edit_handlers import MarkdownPanel 13from wagtailmarkdown.fields import MarkdownField 14 15from wagtail_graphql.models import GraphQLEnabledModel, GraphQLField 16from wagtail.core.signals import page_published, page_unpublished 17import urllib 18import logging 19import json 20import os 21 22logger = logging.getLogger() 23logger.setLevel(logging.INFO) 24 25(中略) 26 27 28class ArticlePage(GraphQLEnabledModel, Page): 29 (中略) 30 31 def send_published_signal(self, **kwargs): 32 """Sending signal when an article is published.""" 33 url = os.getenv('NETLIFY_HOOKS_URL') 34 data = {} 35 headers = { 36 'Content-Type': 'application/json', 37 } 38 req = urllib.request.Request(url, json.dumps(data).encode(), headers) 39 res = urllib.request.urlopen(req).read() 40 logger.debug(res) 41 42 page_published.send(sender=self.__class__) 43 44 def send_unpublished_signal(self, **kwargs): 45 """Sending signal when an article is unpublished.""" 46 url = os.getenv('NETLIFY_HOOKS_URL') 47 data = {} 48 headers = { 49 'Content-Type': 'application/json', 50 } 51 req = urllib.request.Request(url, json.dumps(data).encode(), headers) 52 res = urllib.request.urlopen(req).read() 53 logger.debug(res) 54 55 page_unpublished.send(sender=self.__class__) 56 57 page_published.connect(send_published_signal) 58 page_unpublished.connect(send_unpublished_signal)
エラーの内容
TypeError at /admin/pages/40/unpublish/
send_unpublished_signal() missing 1 required positional argument: 'self'
Request Method: POST
Request URL: https://admindev.huideyeren.info/admin/pages/40/unpublish/
Django Version: 2.1.7
Exception Type: TypeError
Exception Value:
send_unpublished_signal() missing 1 required positional argument: 'self'
Exception Location: /var/task/django/dispatch/dispatcher.py in <listcomp>, line 175
Python Executable: /var/lang/bin/python3.6
Python Version: 3.6.9
Python Path:
['/var/task',
'/opt/python/lib/python3.6/site-packages',
'/opt/python',
'/var/runtime',
'/var/runtime/awslambda',
'/var/lang/lib/python36.zip',
'/var/lang/lib/python3.6',
'/var/lang/lib/python3.6/lib-dynload',
'/var/lang/lib/python3.6/site-packages',
'/opt/python/lib/python3.6/site-packages',
'/opt/python',
'/var/task']
Server time: 土, 7 9月 2019 09:24:58 +0000
お手数ですが、ご教授いただけると幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。