Django REST Framework ile basit bir model kaydetmek istiyorum. Tek gereksinim, UserVote.created_by
'un perform_create()
yönteminde otomatik olarak ayarlanmasıdır. Bu, bu durumla başarısız:Django REST Framework: "Bu alan gereklidir." required = False ve unique_together
{
"created_by": [
"This field is required."
]
}
Ben çünkü unique_together endeksinin sanırım.
models.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)
nasıl created_by
kullanıcıdan girmesini kalmadan DRF benim modeli kaydedebilir
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 ve bunun yerine bu alanı otomatik olarak kod olarak mı ayarladınız?
Şimdiden teşekkürler!
Bu temiz! ÇALIŞIYOR bir cazibe gibi! İpucu için çok teşekkürler! –
eksik ithalat. – Nisk