Nun, ich habe dieses Modell:Django-Rest-Framework POST-Operation: Felder, die nicht leer ist, aber DRF sagt erforderlich ist
class Application(models.Model):
name = models.CharField("nom", unique=True, max_length=255)
sonarQube_URL = models.CharField("Url SonarQube", max_length=255,
blank=True, null=True)
def __unicode__(self):
return self.name
und diesen Serializer:
class ApplicationSerializer(serializers.ModelSerializer):
nom = serializers.CharField(source='name', required=True, allow_blank=True)
url_sonarqube = serializers.CharField(source='sonarQube_URL', required=False)
flows = FlowSerializer(many=True, read_only=True)
class Meta:
model = Application
fields = ('id', 'nom', 'url_sonarqube', 'flows')
Meine Ansicht ist einfach:
class ApplicationViewSet(viewsets.ModelViewSet):
queryset = Application.objects.all()
serializer_class = ApplicationSerializer
Ich benutze dieses Modell von Berechtigungen in meinem settings.py:
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.DjangoModelPermissions',),
'PAGE_SIZE': 10,
'TEST_REQUEST_DEFAULT_FORMAT': 'json',
'TEST_REQUEST_RENDERER_CLASSES': (
'rest_framework.renderers.MultiPartRenderer',
'rest_framework.renderers.JSONRenderer',
'rest_framework.renderers.TemplateHTMLRenderer'
)
}
Wenn ich POST-Operation verwenden, um auf DRF-Schnittstelle (in HTML-Form), ich alle Felder der Anwendung Artikel gefüllt. Wie Sie sehen können, wird der Parameter "required" von "nom" auf True gesetzt. Und das ist das Problem: Auch wenn 'nom' nicht leer ist, sagt DRF "Dieses Feld ist erforderlich!". Daher kann ich keinen neuen Anwendungsposten hochladen. Ich verstehe nicht, warum es nicht funktioniert ... Wo ist der Fehler?