[英]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.