在 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