Voglio salvare un modello semplice con Django REST Framework. L'unico requisito è che UserVote.created_by
sia impostato automaticamente nel metodo perform_create()
. Ciò non riesce con questa eccezione:Django REST Framework: "Questo campo è richiesto." con required = False e unique_together
{
"created_by": [
"This field is required."
]
}
Suppongo che sia a causa dell'indice 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)
Come posso salvare il mio modello in DRF, senza dover all'utente di fornire created_by
e invece imposta questo campo automaticamente nel codice?
Grazie in anticipo!
Questo è pulito! Funziona come un fascino! Grazie mille per il suggerimento! –
importazioni mancanti. – Nisk