[英]Django model DateField format in modelformset_factory
我正在嘗試為名為Book
模型制作一個modelform_factory
,但DateField
的行為異常。
class Book(models.Model):
name = models.CharField(max_length = 50)
date = models.DateField(max_length = 50)
我的views
中有一個函數返回以下內容:
modelform = modelformset_factory(Book, fields = (
'name',
'date',
),
can_delete=True,
widgets = {
'date': forms.DateInput(format='%d/%m/%Y'),
})
在我的template
此modelform將使用日期選擇器呈現:
$('.datepicker').datepicker({ format: 'dd/mm/yyyy' });
到目前為止,一切都很好,到目前為止,一切都按預期進行。 但是,當我再次將表單發布到視圖中並保存modelformset時, dd/mm/yyyy
日期錯誤地轉換為yyyy-mm-dd
。
if request.method == 'POST':
formset = modelform(request.POST, request.FILES, queryset=Book.objects.filter(name=book))
if formset.is_valid():
formset.save() # This first deletes all instances that are checked for deletion
f = formset.save(commit=False) # This filters the formset to only include filled in forms
for form in f:
form.save()
return HttpResponse("success")
有人知道如何格式化該dd/mm/yyyy
日期以正確輸入我的數據庫嗎?
您可能需要重新格式化日期以匹配字段的要求(yyyy-mm-dd)。 使用dd / mm / yyyy格式的datapicker工具后,您需要通過jQuery更改值。
有點像:
$("#dateField").on('change', function(){
var arr = $("#dateField").val().split("/");
var newDate = arr[2]+"-"+arr[1]+"-"+arr[0];
$("#dateField").val(newDate);
});
然后,您需要先在視圖中將該字符串解析為日期類型,然后再使用parse_date保存該字符串:
from datetime import datetime
date = request.POST['dateField']
pDate= parse_date(date)
form.date = pDate
form.save()
在源中: https : //docs.djangoproject.com/zh-CN/2.1/_modules/django/db/models/fields/#DateField https://docs.djangoproject.com/zh-CN/2.1/ref/utils/#module -django.utils.dateparse
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.