Django REST Frameworkを使用して単純なモデルを保存します。唯一の要件はperform_create()
メソッド内でUserVote.created_by
が自動的に設定されることです。これは、この例外で失敗します:Django RESTフレームワーク: "このフィールドは必須です。" with必須= Falseおよびunique_together
{
"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')
serializers.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の私のモデルを保存することができます代わりにこのフィールドをコードで自動的に設定しますか?
ありがとうございます!
これはすてきです!魅力的な作品!ヒントのためにありがとう! –
が不足しています。 – Nisk