如何向我的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期望收到什么?
答案 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请求中同时提交两者。