2017-04-19 2 views
0

Ich verwende DRF> 3.0; Ich möchte die Serialisierung eines DateTime-Felds in meinem Modell steuern. Insbesondere möchte ich das Datum-Uhrzeit in ANY Zeitzone (nicht nur in den Einstellungen.TIME_ZONE; das ist die Standardeinstellung) ausgegeben werden. Die Zeitzone, die ich verwenden möchte, wird als Schlüsselwortargument empfangen, wenn ich eine Instanz meines Serialisierers erstelle. Allerdings bekomme ich eine AttributeError, wenn ich versuche, die Zeitzone auf der MySerializer.deployment_time.timezone = self.timezone Codezeile einzustellen.Django Rest Framework - Zeitzone für Datetime-Feld

Wie kann ich das Attribut "timezone" in der "deployment_time" -Instanz festlegen. Oder gibt es einen anderen Weg, dies zu erreichen?

class MySerializer(serializers.ModelSerializer): 
    deployment_time = serializers.DateTimeField(format='%Y-%m-%d %H:%M', input_formats=['%Y-%m-%d %H:%M']) 

    def __init__(self, *args, **kwargs): 
     self.timezone = kwargs.pop('timezone') if 'timezone' in kwargs else None 
     super(MySerializer, self).__init__(*args, **kwargs) 
     if self.timezone: 
      MySerializer.deployment_time.timezone = self.timezone 

AttributeError: type object 'MySerializer' has no attribute 'deployment_time'

Antwort

0

Ich glaube, Sie die Fehlerzeile mit

self.deployment_time.timezone = self.timezone

ersetzen müssen