簡體   English   中英

Django:如何從另一個 model 更新字段值?

[英]Django:How to update field value from another model?

當用戶發布該特定圓柱但我無法進行更改時,我想在 CylinderEntry model 中將字段可用性值的值從“可用”更新為“已發布”。

這是我正在執行的邏輯:

class IssueCylinder(models.Model):
    cylinder=models.ForeignKey('CylinderEntry',on_delete=models.CASCADE,unique=True)
    userName=models.CharField(max_length=60)
    issueDate=models.DateTimeField(default=timezone.now)
    
    def save(self,*args,**kwargs):
        if not self.pk:
            CylinderEntry.objects.filter(pk=self.pk).update(Availability=('issued'))

        super().save(*args,**kwargs)

    def __str__(self):
        return self.userName+" issued "+self.cylinder.cylinderId

這是氣缸入口 model:

class CylinderEntry(models.Model):
    stachoice=[
    ('fill','Fill'),
    ('empty','empty') 
    ]
    substachoice=[
    ('available','Availabe'), 
    ]
    cylinderId=models.CharField(max_length=50,unique=True)
    gasName=models.CharField(max_length=200)
    cylinderSize=models.CharField(max_length=30)
    Status=models.CharField(max_length=40,choices=stachoice,default='fill')
    Availability=models.CharField(max_length=40,choices=substachoice,default="available")
    EntryDate=models.DateTimeField(default=timezone.now)

    

    def get_absolute_url(self):
        return reverse('cylinderDetail',args=[(self.id)])

    def __str__(self):
        return self.cylinderId

這是問題氣缸 model:

class IssueCylinder(models.Model):
    cylinder=models.ForeignKey('CylinderEntry',on_delete=models.CASCADE,unique=True)
    userName=models.CharField(max_length=60)
    issueDate=models.DateTimeField(default=timezone.now)
    
    def save(self,*args,**kwargs):
        if not self.pk:
            CylinderEntry.objects.filter(pk=self.pk).update(Availability=('issued'))

        super().save(*args,**kwargs)

    def __str__(self):
        return self.userName+" issued "+self.cylinder.cylinderId

幫我改變價值觀:)

嘗試在您的 CylinderEntry.substachoice 上添加“已發布”選項

class CylinderEntry(models.Model):
    substachoice = [
        ('available','Availabe'), 
        ('issued','Issued'), 
    ]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM