【发布时间】:2016-04-12 05:44:18
【问题描述】:
我想用 Django REST Framework 保存一个简单的模型。唯一的要求是UserVote.created_by 在perform_create() 方法中自动设置。失败并出现以下异常:
{
"created_by": [
"This field is required."
]
}
我猜是因为 unique_together 索引。
models.py:
class UserVote(models.Model):
created_by = models.ForeignKey(User, related_name='uservotes')
rating = models.ForeignKey(Rating)
class Meta:
unique_together = ('created_by', 'rating')
序列化器.py
class UserVoteSerializer(serializers.ModelSerializer):
id = serializers.IntegerField(read_only=True)
created_by = UserSerializer(read_only=True)
class Meta:
model = UserVote
fields = ('id', 'rating', 'created_by')
views.py
class UserVoteViewSet(viewsets.ModelViewSet):
queryset = UserVote.objects.all()
serializer_class = UserVoteSerializer
permission_classes = (IsCreatedByOrReadOnly, )
def perform_create(self, serializer):
serializer.save(created_by=self.request.user)
如何在不让用户提供created_by 而是在代码中自动设置此字段的情况下将我的模型保存在 DRF 中?
提前致谢!
【问题讨论】:
标签: python django database django-rest-framework unique