Каждый раз, когда я пытаюсь ввести дату и время в мою форму, всегда отображается Введите действительную дату / время Я пробовал разные форматы даты и времени; тот, который я указал, и те по умолчанию, они все не работали. Я пробовал разные решения по переполнению стека, но все они, похоже, не работают. Поле, с которым у меня возникла эта проблема: due_date
ПРИМЕЧАНИЕ: я не показывал импорт
Кроме того, мне нужны рекомендации для хороших сборщиков даты и времени. Все те, которые я пробовал, не работали по той или иной причине.
views.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)
forms.py:
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))