У меня есть модель, форма и пара представлений, чтобы добавить новый объект и обновить объект. Отправка формы при добавлении работает отлично, и когда я пытаюсь обновить объект (используя экземпляр и ту же форму), отображается правильный ввод для даты, но время не показывает ввод, и я вижу предупреждения в консоли об этом, может кто-нибудь помочья понимаю это? Я чувствую, что перепробовал все, это мой первый опыт выбора даты и времени. Я упростил то, что имею в виду ниже.
model.py:
from django.db import models
class MyModel(models.Model):
date = models.DateField()
time = models.TimeField()
forms.py:
from django import forms
from .models import MyModel
from tempus_dominus.widgets import DatePicker, TimePicker
class MyModelForm(forms.ModelForm):
date = forms.DateField(label="Start date", input_formats=['%d/%m/%Y'], widget=DatePicker(options={'format': 'DD/MM/YYYY', }, attrs={'autocomplete': 'off'}))
time = forms.TimeField(label="Time (24 hour)",input_formats=['%H:%M'], widget=TimePicker(options={'format': 'HH:mm'}, attrs={'autocomplete': 'off'}))
class Meta:
model = MyModel
fields = ('date', 'time')
views.py
def create_object_view(request):
"""View that creates a model entry"""
if request.method == 'POST':
object_form = MyModelForm(request.POST)
if object_form.is_valid():
object_form.save()
return redirect('wherever')
else:
object_form = MyModelForm()
return render(request, 'create_object.html', {'object_form': object_form})
def update_object_view(request, object_id):
"""View that updates instance of model entry"""
object = get_object_or_404(MyModel, pk=object_id)
if request.method == 'POST':
update_object_form = MyModelForm(request.POST, instance = object)
if update_object_form.is_valid():
update_lesson_form.save()
return redirect('wherever')
else:
update_object_form = MyModelForm(instance = object)
return render(request, 'update_object_detail.html', {'update_object_form': update_object_form})
Вот предупреждения, которые я вижу:
moment.min.js:1 Deprecation warning: value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.
Arguments:
[0] _isAMomentObject: true, _isUTC: false, _useUTC: false, _l: en, _i: T17:30:00, _f: null, _strict: false, _locale: [object Object]
Error
at Function.createFromInputFallback (https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js:1:3368)
at Yt (https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js:1:21353)
at Ot (https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js:1:22064)
at Tt (https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js:1:22146)
at c (https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js:1:209)
at k.r.getMoment (https://cdnjs.cloudflare.com/ajax/libs/tempusdominus-bootstrap-4/5.1.2/js/tempusdominus-bootstrap-4.min.js:6:14482)
at k.r._parseInputDate (https://cdnjs.cloudflare.com/ajax/libs/tempusdominus-bootstrap-4/5.1.2/js/tempusdominus-bootstrap-4.min.js:6:12293)
at k.r.date (https://cdnjs.cloudflare.com/ajax/libs/tempusdominus-bootstrap-4/5.1.2/js/tempusdominus-bootstrap-4.min.js:6:15573)
at String.<anonymous> (https://cdnjs.cloudflare.com/ajax/libs/tempusdominus-bootstrap-4/5.1.2/js/tempusdominus-bootstrap-4.min.js:6:15189)
at Function.each (https://code.jquery.com/jquery-3.3.1.min.js:2:2623)
Я действительно близок к тому, чтобы заставить это работать, мне просто нужно пройти через эту часть! Если у кого-то есть хороший опыт использования этого API, я буду очень признателен за отзыв!