2017-07-26 4 views
1

Ich möchte die Felder in ModelSerializer durchlaufen und möchte diese Felder erforderlich machen. das funktioniert nicht. wie kann ich das machen. Jemand bitte hilf mir.django rest framwork iterate throug Felder im Modell Serializer

class CustomerSerializer(serializers.ModelSerializer): 

    class Meta: 
     model = Customer 

     fields = ("email", "phone_no", "full_name", "landline_no") 

    def __init__(self, *args, **kwargs): 
     super().__init__(*args, **kwargs) 

     for field in self.fields: 
      self.fields[field].required = True 
      self.fields[field].allow_blank = False 
+0

Haben Sie versucht, 'super (CustomerSerializer, selbst) .__ init __ (* args, ** kwargs)' ?? – zaidfazil

+0

@zaidfazil es ist Python 3. wird es funktionieren – tstudent

+0

Aufruf 'super()' wie das ist der empfohlene Weg. Probieren Sie es aus! .. Ich habe das gleiche in meiner Maschine versucht und es funktioniert gut. Was meinst du mit "nicht arbeiten"? Gibt es einen Fehler? – zaidfazil

Antwort

2

Sie können die zusätzlichen Argumente in Meta-Klasse für eine ModelSerializer, wie folgt hinzufügen:

class Meta: 
    model = Customer 

    fields = ("email", "phone_no", "full_name", "landline_no") 
    extra_kwargs = {'email': {'required': True, 'allow_blank': False}} 

Wenn Sie dies für alle Felder, dann sollten Sie Ihre Felder innerhalb des Customer Modell überdenken. Sie können blank=False und/oder null=False hinzufügen. Rest Framework berücksichtigt diese Informationen bei der Erstellung eines ModelSerializers

Verwandte Themen