モデル:保存Djangoのモデル
class Meal(models.Model):
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
collection_from = models.DateTimeField(blank=False, null=False)
discount_price = models.DecimalField(blank=False, null=False, decimal_places=2, max_digits=4)
normal_price = models.DecimalField(blank=True, null=True, decimal_places=2, max_digits=4)
available_count = models.IntegerField(blank=False, null=False)
name = models.CharField(blank=False, null=False, max_length=255)
active = models.BooleanField(blank=False, null=False, default=True)
さて、私は例えば、created_at
とupdated_at
値が正しく設定されていることのインスタンスを保存していたとき:2016-08-21 13:13:57.585472+02
。 collection_from
の値は前の2つの値とほぼ同じですが、次の日を指すように設定されています。例えば、私は全く得られない2016-08-22 01:00:00+02
です。 collection_from
の値は、ブラウザによって送信されるときのようになります。2016-08-21 23:00
。だから何がここでの問題だ
TIME_ZONE = 'UTC'
USE_TZ = True
:私はsettings.py
ファイルをintセットアップ適切な設定を持っていると信じて? Djangoでを保存する方法は、created_at
またはupdated_at
と同じですか?
EDIT:
私は、このモデルの値を取得するときに、私は正しいものを得ることに気づいた - ので、私collection_from
フィールドの値が、それはだ出力に、データベース内2016-08-22 01:00:00+02
と等しい場合最初の値に変換されているので、2016-08-21 23:00
です。だから今質問が変わります - created_at
とupdated_at
フィールドとこれの違いはなぜですか?
EDIT2:
私は(私はcollection_from
値を供給する方法を十分に説明するように)それが必要になると思いませんでしたが、ここではPOSTリクエストのボディです:
[{"collection_from":"2016-08-21 23:00","discount_price"
:"10","normal_price":"20","available_count":"4","name":"pizza"}]
そして、
class MealsCrudView(CreateAPIView):
serializer_class = MealSerializer
シリアライザ:
をDRFは、それを保存見ます10class MealSerializer(serializers.ModelSerializer):
class Meta:
model = Meal
どのように 'collection_from'に値を保存していますか? 'collection_from'で作業している場所の完全なコードを表示してください。 –
私はそれのための特別なコードを持っていません。 Djangoは保存を処理します。 –
'collection_from'には' auto_now_add'や 'auto_now'がありません。つまり、そのフィールドに値を指定する必要があります。自動的に値を設定することはできません。オブジェクトのインスタンスを作成し、この値を割り当てるコードを表示する必要があります。 – solarissmoke