Джанго: Где убрать значения из URL? - PullRequest
0 голосов
/ 16 мая 2018

Я хочу написать представление на основе классов и очистить часть URL-адреса:

URL-адрес выглядит следующим образом:

r'^some-date/(?P<date>\d\d\d\d-\d\d-\d\d)/view'

Какой метод следует использовать для«очистить» строку (например, «2018-12-31») от объекта datetime Python?

Ответы [ 2 ]

0 голосов
/ 16 мая 2018

В django2.0 мы можем использовать преобразователи пути.

custom_path_converter.py

from datetime import datetime

class DatePathConverter:
    regex = '\d\d\d\d-\d\d-\d\d'

    def to_python(self, date_str):
        date = datetime.strptime(value, "%Y-%m-%d").date()
        return date

    def to_url(self, date):
        return date.strftime("%Y-%m-%d")

urls.py

from django.urls import register_converter, path
from .views import views
register_converter(DatePathConverter, 'date')

urlpatterns = [
    # ....
    path('some-date/<date:date>/', views.some_view)
    # ....
]

Читайте: https://learnbatta.com/blog/custom-path-converters-in-django-17/
Официальный документ: https://docs.djangoproject.com/en/2.0/topics/http/urls/#registering-custom-path-converters

0 голосов
/ 16 мая 2018
def clean_date(request, date):
    datetime_object = datetime.strptime(date, '%b %d %Y %I:%M%p')
...