Reputation: 17
I tried to connect Signals 'post_save' method to this Order model in my Django app:
from django.conf import settings
from django.db import models
from CFTrade.models import Item
class Order(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='order_user')
full_name = models.CharField(max_length=50)
address1 = models.CharField(max_length=250)
address2 = models.CharField(max_length=250)
city = models.CharField(max_length=100)
phone = models.CharField(max_length=100)
post_code = models.CharField(max_length=20)
created = models.DateTimeField(auto_now_add=True)
edited = models.DateTimeField(auto_now=True)
total_paid = models.DecimalField(max_digits=7, decimal_places=2)
order_key = models.CharField(max_length=200)
billing_status = models.BooleanField(default=False)
class Meta:
ordering = ('-created',)
def __str__(self):
return str(self.created)
And also Imported the signal receiver module: In my app's apps.py file,
from django.apps import AppConfig
class OrdersConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'orders'
def ready(self):
import orders.signals
In my Model handler I don't receive what I need from model, including billing_status and created `
from django.db.models.signals import post_save
from django.dispatch import receiver
from orders.models import Order
@receiver(post_save, sender=Order)
def inventory_handler(sender, instance, created, *args, **kwargs):
print('First step')
print(args, kwargs)`
Here is what I get:
First step () {'signal': <django.db.models.signals.ModelSignal object at 0x0000026212438590>, 'update_fields': None, 'raw': False, 'using': 'default'}
How should I fix this?
Upvotes: 1
Views: 87
Reputation: 477180
It is in the instance, so:
@receiver(post_save, sender=Order)
def inventory_handler(sender, instance, created, *args, **kwargs):
print('First step')
print(instance.billing_status)
print(created)
the args
and kwargs
here only catch the other parameters, that are thus not sender
, instance
and created
.
Upvotes: 0