Ich möchte ein einfaches Modell mit Django REST Framework speichern. Die einzige Anforderung ist, dass UserVote.created_by
automatisch innerhalb der perform_create()
Methode festgelegt wird. Dies schlägt mit dieser Ausnahme fehl:Django REST Framework: "Dieses Feld ist erforderlich." with required = False und unique_together
{
"created_by": [
"This field is required."
]
}
Ich denke, es ist wegen der unique_together index.
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)
Wie kann ich mein Modell in DRF speichern, ohne den Benutzer mit created_by
liefern und setzen Sie dieses Feld stattdessen automatisch in Code?
Vielen Dank im Voraus!
Das ist ordentlich! Klappt wunderbar! Vielen Dank für den Hinweis! –
fehlende Importe. – Nisk