2016-10-30 28 views
0

如何向我的django應用程序發送cURL類型的請求,其中POST數據包含DateTimeField? models.py:如何將datetimefield捲曲到django

from django.db import models 
from datetime import datetime  

class usageHistory(models.Model): 

    fk_employee_number = models.BigIntegerField() 
    fk_version = models.BigIntegerField() 
    fk_instrument = models.BigIntegerField() 
    timestamp = models.DateTimeField(auto_now=False, auto_now_add=False) 

forms.py:

from django import forms 
from django.forms import ModelForm 
from .models import * 

class usageHistoryForm(ModelForm): 
    class Meta: 
     model = usageHistory 
     fields = '__all__' 
    def __init__(self, *args, **kwargs): 
     super(usageHistory, self).__init__(*args, **kwargs) 
     instance = getattr(self, 'instance', None) 

我不知道它想在外地。或許YYYY-MM-DD HH:MM:SS?我真的不知道。我可以在網上找到很多幫助序列化DateTimeField,但不是如何將信息填入它。我知道POST數據是string,那麼django期望收到什麼?

+1

你的課真的應該以一個大寫字母遵循Python類的命名約定開始。 'UsageHistory'和'UsageHistoryForm' – Soviut

回答

1

documentation for DateTimeField顯示了它接受的格式以及如何自定義它。

如果沒有提供input_formats參數,默認的輸入格式爲:

['%Y-%m-%d %H:%M:%S', # '2006-10-25 14:30:59' 
'%Y-%m-%d %H:%M',  # '2006-10-25 14:30' 
'%Y-%m-%d',    # '2006-10-25' 
'%m/%d/%Y %H:%M:%S', # '10/25/2006 14:30:59' 
'%m/%d/%Y %H:%M',  # '10/25/2006 14:30' 
'%m/%d/%Y',    # '10/25/2006' 
'%m/%d/%y %H:%M:%S', # '10/25/06 14:30:59' 
'%m/%d/%y %H:%M',  # '10/25/06 14:30' 
'%m/%d/%y']    # '10/25/06' 
+0

非常感謝您提供鏈接。我正在閱讀模型文檔(https://docs.djangoproject.com/en/1.10/ref/models/fields/#django.db.models.DateTimeField),但它沒有真正說,我沒有認爲表單文檔會說更多。謝謝! – Keith

0

Django的ModelForm應該自動以您期望的格式表示您的日期時間。此外,如果用戶試圖破壞日期值,它將驗證該輸入。

嘗試提交表單並在Chrome開發人員工具的網絡標籤中查找(F12)。這將向您顯示您的表單發出的POST請求以及Django接受的字符串格式。

請記住,Django使用的小部件實際上是two separate text fields;一個是日期,另一個是時間。所以你需要確保你在你的POST請求中提交。