Как django UpdateView находит HTML-форму?(название конвенции) - PullRequest
0 голосов
/ 08 декабря 2018

Я следую учебному пособию по django, и все работает, но я не понимаю, как этот класс в views.py находит файл album_form.html, если я не передал никаких параметров пути / имени.

class AlbumCreate(CreateView):
    model = Album
    fields = ['artist' , 'album_title' , 'genre' , 'album_logo']

Имя html-файла album_form.html и работает нормально, но если я перехожу на что-то else_form.html, оно больше не работает.Откуда django указывает, что он должен использовать «альбом» вместо «что-то другое»?Как называется соглашение?

Это не из urls.py, потому что мое это:

url(r'album/add/$', views.AlbumCreate.as_view(), name='album-add')

1 Ответ

0 голосов
/ 08 декабря 2018

Это класс CreateView.

class CreateView(SingleObjectTemplateResponseMixin, BaseCreateView):
    template_name_suffix = '_form'

Как вы можете видеть, он имеет атрибут класса template_name_suffix, который используется в SingleObjectTemplateResponseMixin при вызове get_template_names.

Вот шаблон, который используется для построения значения template_name.

`<app_label>/<model_name><template_name_suffix>.html`

Именно поэтому он отображает album_form.html без указания template_name в вашем представлении.

Также естьэто объяснение в Django Docs .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...