Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Django表单中输入有效的日期/时间_Python_Django_Django Forms - Fatal编程技术网

Python 在Django表单中输入有效的日期/时间

Python 在Django表单中输入有效的日期/时间,python,django,django-forms,Python,Django,Django Forms,每当我尝试在表单中输入datetime时,它总是说输入一个有效的日期/时间 我尝试了不同的日期时间格式;我指定的和默认的,它们都不起作用。 我在堆栈溢出上尝试了不同的解决方案,但它们似乎都不起作用。 我遇到此问题的字段是到期日 注意:我没有显示任何导入 另外,我需要为优秀的约会时间选择者提供建议。由于某种原因,我试过的所有方法都不起作用 视图。py: @login_required def task_create(request): data = dict() #, data=reque

每当我尝试在表单中输入datetime时,它总是说输入一个有效的日期/时间 我尝试了不同的日期时间格式;我指定的和默认的,它们都不起作用。 我在堆栈溢出上尝试了不同的解决方案,但它们似乎都不起作用。 我遇到此问题的字段是到期日

注意:我没有显示任何导入

另外,我需要为优秀的约会时间选择者提供建议。由于某种原因,我试过的所有方法都不起作用

视图。py:

@login_required
def task_create(request):
    data = dict()
#, data=request.POST
    if request.method == 'POST':
        form = TaskForm(request.user, data=request.POST)
        if form.is_valid():
            form.save()
            data['form_is_valid'] = True
        else:
            data['form_is_valid'] = False
    else:
        form = TaskForm(request.user)

    context = {'form': form}
    data['html_form'] = render_to_string('partial_task_create.html',
        context,
        request=request
    )
    return JsonResponse(data)  
class TaskForm(ModelForm):

    due_date = forms.DateTimeField(input_formats=['%I:%M %p %d-%b-%Y'])    
    parent = forms.ModelChoiceField(queryset=Task.objects.all(), empty_label="---None---", required=False)
    #widget=DateTimePickerInput(format='%I:%M %p %d-%m-%Y')

    class Meta:
        model = Task
        fields = ['task_title', 'task_description', 'due_date', 'is_completed', 'categories', 'parent']   
        widgets = {
             #'due_date': DateTimeInput()
        }     

    def __init__(self, user, *args, **kwargs):        
        super(TaskForm, self).__init__(*args, **kwargs)
        self.fields['categories'].queryset = Categories.objects.filter(Q(user_id__isnull=True) | Q(user_id=user.id))
forms.py:

@login_required
def task_create(request):
    data = dict()
#, data=request.POST
    if request.method == 'POST':
        form = TaskForm(request.user, data=request.POST)
        if form.is_valid():
            form.save()
            data['form_is_valid'] = True
        else:
            data['form_is_valid'] = False
    else:
        form = TaskForm(request.user)

    context = {'form': form}
    data['html_form'] = render_to_string('partial_task_create.html',
        context,
        request=request
    )
    return JsonResponse(data)  
class TaskForm(ModelForm):

    due_date = forms.DateTimeField(input_formats=['%I:%M %p %d-%b-%Y'])    
    parent = forms.ModelChoiceField(queryset=Task.objects.all(), empty_label="---None---", required=False)
    #widget=DateTimePickerInput(format='%I:%M %p %d-%m-%Y')

    class Meta:
        model = Task
        fields = ['task_title', 'task_description', 'due_date', 'is_completed', 'categories', 'parent']   
        widgets = {
             #'due_date': DateTimeInput()
        }     

    def __init__(self, user, *args, **kwargs):        
        super(TaskForm, self).__init__(*args, **kwargs)
        self.fields['categories'].queryset = Categories.objects.filter(Q(user_id__isnull=True) | Q(user_id=user.id))

您需要在到期日表单字段上设置widget属性,以匹配输入格式。 比如:

due_date = forms.DateTimeField(input_formats=['%I:%M %p %d-%b-%Y'],
             widget = forms.DateTimeInput(
                 attrs={'type': 'datetime-local'},
                 format='%I:%M %p %d-%b-%Y')) 

对于日期时间选择器,请查看

在我尝试此操作后,它将页面上的元素从TextField更改为datetime字段(格式为mm/dd/yyyyy--:--),只允许下拉日期。。。在我选择了一个日期和时间后,它仍然会显示相同的内容,输入一个有效的日期/时间,或者尝试将您的输入格式更改为文档中的以下格式之一: