如何将datetimefield卷曲到django

时间:2016-10-30 22:47:55

标签: python django curl django-models

如何向我的django应用程序发出cURL类型请求,其中POST数据包含DateTimeField? models.py:

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期望收到什么?

2 个答案:

答案 0 :(得分: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'

答案 1 :(得分:0)

Django的ModelForm应该以它期望的格式自动表示你的日期时间。此外,如果用户试图破坏日期值,它将验证该输入。

尝试提交表单并查看Chrome开发人员工具( F12 )中的“网络”标签。这将显示您的表单发出的POST请求以及Django接受的字符串格式。

请记住,Django使用的小部件实际上是two separate text fields;一个是约会,另一个是时间。因此,您需要确保在POST请求中同时提交两者。