django: как поместить значение даты из базы данных в «тип ввода =’дата'»?

#html #django

#HTML #django

Вопрос:

почему я не могу поместить значение из моей базы данных в тип ввода date? даже если мой запрос правильный?

 {% for feedback in feedbacks %}
   <input name="datef" value="{{feedback.dateSubmitted}}" type="date">
{% endfor %}
  

это мой views.py

 feedback = obj.objects.all()
    print(feedback)
  

это результат для печати

 <QuerySet [<TrEmployeeSuppliersFeedbackQuestionsSubmittedRecords: mystudent>]>
  

мой models.py

 class TrEmployeeSuppliersFeedbackQuestionsSubmittedRecords(models.Model):
    .....
    dateSubmitted = models.DateField(auto_now_add=True, null=True, blank=True)
    .....
  

результат в моем веб-представлении

введите описание изображения здесь

ОБНОВЛЕНИЕ: я меняю свой html на этот, и это результат в моем webview

HTML

 {% for feedback in feedbacks %}
    {{feedback.dateSubmitted}} <input name="datef" value="{{feedback.dateSubmitted}}" type="date">
{% endfor %}
  

введите описание изображения здесь

Комментарии:

1. Вы уверены, что {{feedback.dateSubmitted}} это имеет какое-то значение?

2. да, я уверен

Ответ №1:

Я подозреваю, что форматирование отключено. Ввод даты, вероятно, требует чего-то подобного year-month-date . Попробуйте передать его следующим образом:

 <input name="datef" value="{{feedback.dateSubmitted|date:'Y-m-d'}}" type="date">
  

Если вышеуказанное не работает, также попробуйте:

 <input name="datef" value="{{feedback.dateSubmitted|date:'d/m/Y'}}" type="date">
  

Ответ №2:

я думаю, что для всех пользовательских вводов будет лучше использовать django forms или ModelForms, после чего django отформатирует все значения для вас, и это будет более чистый способ проверки пользовательских данных и сохранения их в базе данных. для нескольких форм вы можете использовать formset

в представлении вы создаете formset:

 TrEmployeeSuppliersFeedbackQuestionsSubmittedRecordsFormSet = modelformset_factory(
    TrEmployeeSuppliersFeedbackQuestionsSubmittedRecords, 
    fields=('dateSubmitted ', )
)       
formset = TrEmployeeSuppliersFeedbackQuestionsSubmittedRecordsFormSet()
  

и добавьте formset в качестве параметра в свой html шаблон

а затем в шаблоне html вы можете

 {{ formset.management_form }}
    {% for form in formset %}
        {{ form.dateSubmitted.value }} {{ form.dateSubmitted }}
    {% endfor %}