I register function-receiver (one in one as in the documentation).
File add_post.py:
from django.db.models.signals import post_save from django.dispatch import receiver from blog.models import Post @receiver(post_save, sender=Post) def add_post(post, **kwargs): print("Creates is" + kwargs['created']) print("Created post is " + post.title) Views.py file:
from blog.siganls.add_post import add_post if createform.is_valid(): new_post = createform.save(commit=False) new_post.blog_id = blog.id new_post.save() return render(request, self.template_name, { 'postform': createform, }) Crashes error:
TypeError: add_post () missing 1 required positional argument: 'post'
On treysbeku can be seen that the error in the line:
new_post.save() Tell me where to look?
If you remove the line
from blog.siganls.add_post import add_post then the function is not called at all.