【发布时间】:2017-11-04 16:56:10
【问题描述】:
我有一个表示设备标识符的模型,我想为设备标识符和当前用户创建一个唯一约束。 我正在通过 save 方法向用户传递,但我不得不删除约束,现在我正在尝试编写测试,我编写的糟糕代码变得难以测试。如何编写一个序列化程序,我可以将当前用户设置为默认用户并保持模型上的唯一对比度。
这是我的模特
class DeviceIdentifier(models.Model):
owner = models.ForeignKey(HDSAuthUser, primary_key=True, on_delete=models.CASCADE)
id_device = models.UUIDField(primary_key=True)
insert_date = models.DateTimeField(auto_now_add=True)
这是我的序列化器
class DeviceIdentifierSerializer(serializers.ModelSerializer):
"""
Device identifier serializer
"""
class Meta:
model = DeviceIdentifier
fields = ('id_device', 'owner')
这是我的观点
class RegisterDevice(CreateAPIView):
"""
View for registering device for the logged user
"""
serializer_class = DeviceIdentifierSerializer
def post(self, request, *args, **kwargs):
obj = DeviceIdentifierSerializer(data=request.data)
obj.is_valid()
obj.save(owner=request.user)
return Response(True)
【问题讨论】:
标签: django rest django-models django-rest-framework