У меня есть метод в admin.py
def save_model(self, request, instance, form, change):
user = request.user
instance = form.save(commit=False)
if not change or not instance.created_by:
instance.created_by = user
instance.save()
form.save_m2m()
if instance.send_to_killer:
serializer = OrderSerializer(
instance)
emailClass = Email()
emailClass.sendemail(serializer, 1, instance)
return instance
, а другой -
class Email(object):
def sendemail(self, data, sendfrom, instance):
print(instance.id)
orders_item = order_item.objects.filter(order_id=instance.id)
print(orders_item)
for item in orders_item:
print(item.qty)
Я получил instance.id, но не получаю orders_item, поскольку элементы сохраняются после заказа. Так как же я могу получить данные элементов заказа при сохранении м2м ??
моделей:
class Order(models.Model):
date = models.DateField(default=timezone.now)
project = models.ForeignKey(
Project, on_delete=models.CASCADE, limit_choices_to={'is_active': True})
send_to_killer = models.BooleanField(default=False)
send_to_sigler = models.BooleanField(default=False)
created_at = models.DateTimeField(default=timezone.now)
created_by = models.ForeignKey(User, on_delete=models.CASCADE, blank=True)
class order_item(models.Model):
# When a Event is deleted, upload models are also deleted
order = models.ForeignKey(Order, on_delete=models.CASCADE, related_name="order_item",
related_query_name="order_item")
item = models.ForeignKey(
Item, on_delete=models.CASCADE, limit_choices_to={'is_active': True}, blank=True, default="")
qty = models.IntegerField(default=0, blank=True)
price = models.DecimalField(
default=Decimal(0), max_digits=12, decimal_places=2, blank=True)
и сериализаторов порядка и порядка_узлов
class orderItemSerializer(serializers.ModelSerializer):
class Meta:
model = order_item
fields = ['qty', 'price']
class OrderSerializer(serializers.ModelSerializer):
order_items = orderItemSerializer(many=True, read_only=True)
class Meta:
model = Order
fields = ['id', 'date', 'project', 'order_items']