如何让created_by和last_updated_by字段在Django REST Framework中工作?Created by应在创建对象时填充,last_updated_by应在对象更新时随时更新。
通常的方法是使用CurrentUserDefault,但如果last_updated_by不包含在有效负载中,这在补丁方法上就不起作用。
last_updated_by = serializers.HiddenField(default=serializers.CurrentUserDefault())你知道怎么做吗?也许最好的方法是在ViewSet中修改serializer数据,但是我不知道怎么做。
编辑产品型号
class Product(TimeStampedModel):
objects = ProductManager()
created_by = models.ForeignKey('users.User', on_delete=models.CASCADE,
related_name='products', null=True, blank=True,
verbose_name='Created by')
last_updated_by = models.ForeignKey('users.User', on_delete=models.CASCADE,
related_name='products_updated', null=True, blank=True,
verbose_name='Updated by')发布于 2021-04-08 19:56:18
尝试在视图集中移动created_by、updated_by逻辑,如下所示
class ProductViewSet(viewsets.ModelViewSet):
queryset = Product.objects.all()
serializer_class = ProductSerializer
def perform_create(self, serializer):
user = self.request.user
serializer.save(created_by=user)
def perform_update(self, serializer):
user = self.request.user
serializer.save(last_updated_by=user)https://stackoverflow.com/questions/67001916
复制相似问题