在django模型中,如何在创建后更新特定列

时间:2017-08-29 12:33:21

标签: django django-models django-serializer

我有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模型中为上述目的插入每个插件后运行更新查询

1 个答案:

答案 0 :(得分:1)

这很简单:

members.objects.filter(HID__gt=new_member_HID).order_by('-HID').update(HID=F('HID')+1)

如果您正在使用Django Rest Framework中基于类的视图,那么您可以在下面添加此行

serializer = self.get_serializer(data=request.data)

通过覆盖CreateAPIView

的方法create

使用HID

中的request.data