Django 如何在相关模型中插入值?
我有以下两种型号:Django 如何在相关模型中插入值?,django,django-models,django-admin,Django,Django Models,Django Admin,我有以下两种型号: class Reservation(models.Model): startDate = models.DateField() endDate = models.DateField() count = models.IntegerField(blank=False, null=False) def generateReservationItems(self): for d in range((endDate - startDa
class Reservation(models.Model):
startDate = models.DateField()
endDate = models.DateField()
count = models.IntegerField(blank=False, null=False)
def generateReservationItems(self):
for d in range((endDate - startDate).days):
reservationItem= ReservationItems(reservationDate=d, count = count)
reservationItem.save()
class ReservationItems(models.Model):
reservationDate = models.DateField();
reservation = models.ForeignKey(Reservation, on_delete=models.CASCADE)
count = models.IntegerField(blank=False, null=False)
class Reservation表示日期包(日期范围),class ReservationItems存储Reservation类中存在的每个日期。我构建了“generateReservationItems()”函数,以便在保存预订对象时自动调用。函数插入的项数等于startDate和endDate之间的差值。例如:如果startDate=Mars 6 2020,endDate=Mars 10 2020,将在ReservationItems中插入5项:
Mars 6 2020
Mars 7 2020
Mars 8 2020
Mars 9 2020
Mars 10 2020
但是,在未将项目插入reservationItems的情况下,保留对象已成功插入。我不知道如何在创建预订对象后调用“GenerateServationItems()”。
请给出任何建议,或者是否有其他有效的方法来执行这些任务。post\u save signal是您的朋友:
post_保存信号是您的朋友:
非常感谢您宝贵的回复。现在我得到这个错误:NameError:name“Reservation”没有定义“它工作得很好”。我刚刚在预订前添加了应用程序名:AppName.Reservation。非常感谢您宝贵的回复。现在我得到这个错误:NameError:name“Reservation”没有定义“它工作得很好”。我刚刚在预订之前添加了应用程序名:AppName.Reservation。
from django.db.models.signals import post_save
class Reservation(models.Model):
...
@receiver(post_save, sender=Reservation, created=True)
def invokeGenerateReservationItems(sender, instance, **kwargs):
instance.generateReservationItems()