在 Django 模型中如何在创建后更新特定列
In django models how to update a particular column after creating
我有 models.py 如下,
class members(models.Model):
id = models.AutoField(primary_key=True)
HID = models.IntegerField(blank=False,unique=True)
owner = models.ForeignKey(User)
member_name = models.CharField(max_length=25, blank=False, default='')
father_name = models.CharField(max_length=25, blank=False, default='')
wife_name = models.CharField(max_length=25, blank=False, default='')
现在上面的HID值每次都是手动输入的。
当有一个新成员被插入时,我打算输入我以前的成员 HID 值,然后插入应该完成,这样之后的所有条目都应该用 HID + 1 更新。
我试图用链表模型来实现这个,比如用 next_HID= 再添加一个,但这里的问题是我的插入不太像每年一到两年,但查询更多所以每次都这样必须通过查询来创建列表。所以我想每次插入后更新 HID 号码。
请告诉我如何 运行 在每次插入 Django 模型后进行更新查询以达到上述目的
就这么简单:
members.objects.filter(HID__gt=new_member_HID).order_by('-HID').update(HID=F('HID')+1)
如果您使用的是来自 Django Rest Framework 的基于 class 的视图,那么您可以在正下方添加此行
serializer = self.get_serializer(data=request.data)
通过覆盖 CreateAPIView
的方法 create
使用 request.data
中的 HID
我有 models.py 如下,
class members(models.Model):
id = models.AutoField(primary_key=True)
HID = models.IntegerField(blank=False,unique=True)
owner = models.ForeignKey(User)
member_name = models.CharField(max_length=25, blank=False, default='')
father_name = models.CharField(max_length=25, blank=False, default='')
wife_name = models.CharField(max_length=25, blank=False, default='')
现在上面的HID值每次都是手动输入的。 当有一个新成员被插入时,我打算输入我以前的成员 HID 值,然后插入应该完成,这样之后的所有条目都应该用 HID + 1 更新。
我试图用链表模型来实现这个,比如用 next_HID= 再添加一个,但这里的问题是我的插入不太像每年一到两年,但查询更多所以每次都这样必须通过查询来创建列表。所以我想每次插入后更新 HID 号码。
请告诉我如何 运行 在每次插入 Django 模型后进行更新查询以达到上述目的
就这么简单:
members.objects.filter(HID__gt=new_member_HID).order_by('-HID').update(HID=F('HID')+1)
如果您使用的是来自 Django Rest Framework 的基于 class 的视图,那么您可以在正下方添加此行
serializer = self.get_serializer(data=request.data)
通过覆盖 CreateAPIView
的方法create
使用 request.data
HID