Как автоматически заполнить таблицу в моей базе данных данными, добавленными в другую таблицу?
В настоящее время я разрабатываю приложение для управления, и я достиг уровня, на котором я должен убедиться, что одна из моих таблиц, а именно таблица запасов, должна автоматически заполняться данными из таблиц местоположения и артикула.
Другими словами, запасы создаются, когда есть местоположение и созданный продукт.
Я пытался использовать сигналы, как в документации, но это не работает.
Помогите мне, пожалуйста.
models.py
class Location(models.Model):
class CHOICES(models.TextChoices):
FOURNISSEUR = 'Fr', 'Fournisseur'
VEHICULE = 'Vl', 'Véhicule'
DEPOT = 'Dt', 'Dêpot'
location = models.CharField(max_length=255, choices=CHOICES.choices)
name = models.CharField(max_length=255, verbose_name="Location Name", unique=True)
provider = models.ForeignKey(Provider, on_delete=models.CASCADE, null=True, blank=True)
depot = models.ForeignKey(Depot, on_delete=models.CASCADE, null=True, blank=True)
vehicle = models.ForeignKey(Vehicle, on_delete=models.CASCADE, null=True, blank=True)
def __str__(self):
return self.name
class Stock(TimeStampBaseModel):
location = models.ForeignKey(Location, on_delete=models.CASCADE)
product = models.ForeignKey(Article, on_delete=models.CASCADE)
qty_stock = models.FloatField(verbose_name="Quantity Purchase", db_index=True, default=0)
def __str__(self):
return self.stock_name
class Meta:
constraints = [
UniqueConstraint(name='unique_storage', fields=['id', 'location', 'product'])
]
signals.py
from django.db.models.signals import post_save
from django.dispatch import receiver
from .models import Location, Stock
from article.models import Article
@receiver(post_save, sender=Location)
def create_stock(sender, instance, created, **kwargs):
if created:
attrs_needed= ['location', 'product', 'qty_stock']
Stock.objects.create(location=instance.location, product = instance.product, qty_stock=instance.qty_stock)
post_save.connect(create_stock, sender=Location, weak=False)