通过 urlpatterns 和视图替换 django-postman 中的默认表单

Replacing default forms in django-postman via urlpatterns and views

django-postman docs 说你可以用这个替换视图中的默认表单:

urlpatterns = patterns('postman.views',
    # ...
    url(r'^write/(?:(?P<recipients>[^/#]+)/)?$',
        WriteView.as_view(form_classes=(MyCustomWriteForm, MyCustomAnonymousWriteForm)),
)

但是patterns是什么?我从哪里导入它,这段代码会去哪里?在项目的 urls.py?

我的项目级别 urls.py 目前包括 django-postman,正如文档中推荐的那样:

urlpatterns = [
  ...
  url("r'messages/', include('postman.urls', namespace='postman'),
]

所以自定义 url 模式应该覆盖已经包含在 urls.py 中的默认模式。

是的,这是 urls.py 的代码。但是,它已经过时了。 现代版本看起来像:

from django.urls import re_path

urlpatterns = [
    re_path(r'^write/(?:(?P<recipients>[^/#]+)/)?$',
        WriteView.as_view(form_classes=(MyCustomWriteForm, MyCustomAnonymousWriteForm)),
]

编辑

我猜你在你的根 urls.py 中包含邮递员网址,然后你可以做这样的事情来覆盖其中之一:

urlpatterns = [
    ...
    re_path(r'^messages/write/(?:(?P<recipients>[^/#]+)/)?$',
        WriteView.as_view(form_classes=(MyCustomWriteForm, MyCustomAnonymousWriteForm)),
    path('messages/', include('postman.urls')),
]