Python Django:如何从另一个模型更新字段值?
我想在用户发出特定圆柱体但我无法进行更改时,将CylinderEntry模型中field Availability value的值从“available”更新为“Issuited” 下面是我执行的逻辑:Python Django:如何从另一个模型更新字段值?,python,django,Python,Django,我想在用户发出特定圆柱体但我无法进行更改时,将CylinderEntry模型中field Availability value的值从“available”更新为“Issuited” 下面是我执行的逻辑: class IssueCylinder(models.Model): cylinder=models.ForeignKey('CylinderEntry',on_delete=models.CASCADE,unique=True) userName=models.CharFiel
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模型:
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
以下是issuecylinder型号:
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):
子脚本=[
(‘可用’、‘可用’),
("已发","已发"),,
]
谢谢您的建议,但它不起作用:)还有其他更新价值的方法吗?