【问题标题】:how to save django data in to tow model如何将 django 数据保存到拖曳模型中
【发布时间】:2022-08-20 18:52:16
【问题描述】:

嗨,请帮助我,我必须在创建和保存后建模我想要的存储结果保存到主存储像这样

store.name == mainstore.name

store.the_rest_of_quantity==mainstore.quantity

我试图使用信号但我失败了

    class Store(models.Model):
        CHOICES = (
            (\'NUM\',\'number\'),
            (\'M\',\'meter\'),
            )
        name                  = models.CharField(max_length=60)
        quantity              = models.PositiveSmallIntegerField (validators=[MinValueValidator(0)],default=0,blank=True,null=True)
        date_of_add           = models.DateTimeField(auto_now_add=True)
        add_new_item          = models.PositiveSmallIntegerField (validators=[MinValueValidator(0)],default=0,blank=True,null=True)
        date_of_remove        = models.DateTimeField(auto_now =True)
        remove_old_item = models.PositiveSmallIntegerField (validators=[MinValueValidator(0)],default=0,blank=True,null=True)
        the_rest_of_quantity = models.PositiveSmallIntegerField (validators=[MinValueValidator(0)],default=0,blank=True,null=True)
        accept_stor           = models.BooleanField(default = False)
        classyfiyed           = models.CharField(max_length=3,choices=CHOICES,blank=True,null=True)
    

        def __str__(self):
            return \'Device Name :( {0} ) Have Quantity({1}) \'.format(self.name,self.quantity)
    
        def save(self, *args, **kwargs):
            try:
                totla_sum = sum([self.quantity , self.add_new_item])
                self.the_rest_of_quantity = int(totla_sum - self.remove_old_item)      
            except Expression as identifier:
                \'you add remove  bigger than quantity\'
            return super().save(*args, **kwargs)


class MainStore(models.Model):
    name         = models.CharField(max_length=120)
    quantity     = models.PositiveIntegerField (null=True,default=0)
    store         = models.OneToOneField(Army,on_delete=models.CASCADE,related_name=\'Store\',null=True)
  • 错误是什么?如果您有更多详细信息,请发布。
  • 在创建并保存字段名称和要保存到 Mainstore 名称和数量之后,我有两个模型 Store 和 Mainstore

标签: django django-models django-views django-forms django-templates


【解决方案1】:

我用信号来解决它

信号.py

@receiver(post_save,sender=Store) def create_store(sender,instance,created,**kwargs): 如果创建: MainStore.objects.get_or_create(Store=instance,name=instance.name,quantity=instance.the_rest_of_quantity) 别的: obj_store = MainStore.objects.filter(Store=instance) update_store = obj_store.update(name=instance.name,quantity=instance.the_rest_of_quantity) 返回更新存储

应用程序.py

从 django.apps 导入 AppConfig

类 StoreConfig(AppConfig): default_auto_field = 'django.db.models.BigAutoField' 名称 = '商店' def 准备好(自我): 导入 Store.signals

在里面.py

default_app_config = "Store.apps.StoreConfig"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 2016-07-07
    • 2017-10-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多