簡體   English   中英

[u"'' 值的格式無效。它必須是 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] 格式。"]

[英][u"'' value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] format."]

再會。 我有一個搜索數據庫中項目的 Django 視圖。 用戶可以在過濾其過濾日期的數據庫時使用電子郵件或訂單號進行搜索。 如果我嘗試搜索,我會得到這些錯誤

[u"'' 值的格式無效。它必須是 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] 格式。"]

這是我的意見.py

def search_form(request):

    if request.method == 'GET':
        user_search = request.GET.get('order')
        print "What is searched for is : ", user_search

        start_date = request.GET.get('first_date')
        print "The start date is : ", start_date

        end_date = request.GET.get('second_date')
        print "The end date is : ", end_date

        if user_search != None or start_date != None or end_date != None:
            items = Order.objects.filter(Q(order_number__iexact=user_search) |
                Q(client__email__iexact=user_search) |
                Q(created_on__range=[start_date, end_date])
                )
            print "items ", items

錯誤指向Q(created_on__range=[start_date, end_date])

追溯:

File "C:\Python27\lib\site-packages\django\core\handlers\base.py" in get_response
  149.                     response = self.process_exception_by_middleware(e, request)

File "C:\Python27\lib\site-packages\django\core\handlers\base.py" in get_response
  147.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "C:\Python27\lib\site-packages\django\contrib\auth\decorators.py" in _wrapped_view
  23.                 return view_func(request, *args, **kwargs)

File "C:\Users\Uchechukwu\Dropbox\Engrs-Shared-Projects\JSA_WEB\jsa_admin\views.py" in search_form
  926.                 Q(created_on__range=[start_date, end_date])

File "C:\Python27\lib\site-packages\django\db\models\manager.py" in manager_method
  122.                 return getattr(self.get_queryset(), name)(*args, **kwargs)

File "C:\Python27\lib\site-packages\django\db\models\query.py" in filter
  790.         return self._filter_or_exclude(False, *args, **kwargs)

File "C:\Python27\lib\site-packages\django\db\models\query.py" in _filter_or_exclude
  808.             clone.query.add_q(Q(*args, **kwargs))

File "C:\Python27\lib\site-packages\django\db\models\sql\query.py" in add_q
  1243.         clause, _ = self._add_q(q_object, self.used_aliases)

File "C:\Python27\lib\site-packages\django\db\models\sql\query.py" in _add_q
  1263.                     current_negated, allow_joins, split_subq)

File "C:\Python27\lib\site-packages\django\db\models\sql\query.py" in _add_q
  1269.                     allow_joins=allow_joins, split_subq=split_subq,

File "C:\Python27\lib\site-packages\django\db\models\sql\query.py" in build_filter
  1203.             condition = self.build_lookup(lookups, col, value)

File "C:\Python27\lib\site-packages\django\db\models\sql\query.py" in build_lookup
  1099.                 return final_lookup(lhs, rhs)

File "C:\Python27\lib\site-packages\django\db\models\lookups.py" in __init__
  19.         self.rhs = self.get_prep_lookup()

File "C:\Python27\lib\site-packages\django\db\models\lookups.py" in get_prep_lookup
  57.         return self.lhs.output_field.get_prep_lookup(self.lookup_name, self.rhs)

File "C:\Python27\lib\site-packages\django\db\models\fields\__init__.py" in get_prep_lookup
  746.             return [self.get_prep_value(v) for v in value]

File "C:\Python27\lib\site-packages\django\db\models\fields\__init__.py" in get_prep_value
  1440.         value = super(DateTimeField, self).get_prep_value(value)

File "C:\Python27\lib\site-packages\django\db\models\fields\__init__.py" in get_prep_value
  1296.         return self.to_python(value)

File "C:\Python27\lib\site-packages\django\db\models\fields\__init__.py" in to_python
  1423.             params={'value': value},

Exception Type: ValidationError at /dashboard/search_form/
Exception Value: [u"'' value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] format."]

您檢查了是否有任何參數不是 None。 但是,如果開始日期或結束日期都為 None,則該檢查將通過,但查詢將失敗並顯示您看到的錯誤。 在過濾它們之前,您需要檢查開始日期和結束日期都不是無。

我在 heroku 上部署代碼時遇到了類似的問題。

更正我的模型屬性后

models.DateField(blank=True, null=True,default=datetime.date.today)

我刪除了 migrations/* 中的所有文件,並在本地和 heroku 上運行了遷移。

python manage.py makemigrations python manage.py migrate

這有助於解決 Heroku 上的遷移問題。

出現這個錯誤的原因很可能是因為 Django 期望 DateTimeField 值采用YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]格式,而您之前可能使用strftime其格式化為字符串,以便 Django無法正確識別哪個數字代表相應的日期時間變量(年、月、日、小時、分鍾、秒、時區)。

您可以通過使用strptime將字符串轉換回日期時間來解決它,

start_date = start_date.strptime(date_string, "YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]")
end_date = end_date.strptime(date_string, "YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]")

或者你可以簡單地刪除命令

start_date.strftime("your_chosen_format")
end_date.strftime("your_chosen_format")

你以前用過的地方。

遇到了同樣的問題,並簡單地通過以下方式解決了它:

date = obj.date 

time = obj.time 

start_date = "%sT%s" % (date, time)

我用這個解決了這個問題

datetime.strptime(request.POST['date'], "%Y-%m-%dT%H:%M")

使用此日期格式

import datetime
datetime.datetime.now().strftime("%Y-%d-%m %H:%M:%S")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM