Каков наилучший способ написания представления на основе классов, которое отображает объект на основе даты и форму? Вариант использования - представление страницы индекса сайта, которое отображает сегодняшний объект и имеет контактную форму.
Сначала я подумал об использовании TodayArchiveView и ContactFormView в качестве миксинов для просмотра страницы индекса моего сайта. Однако TodayArchiveView наследуется от BaseDateListView, а ContactFormView наследуется от ProcessFormView. И ProcessFormView, и BaseDateListView реализуют get () и в конечном итоге вызывают render_to_response с очень разными данными, поэтому я думаю, что это не сработает, потому что даже если бы я мог вызвать оба с помощью super, что будет возвращено? (Я даже не уверен, что мои мысли на этот счет верны; я все еще склоняюсь к мысли о множественном наследовании.)
Тогда я подумал о написании собственного get (), который сочетает в себе функциональность двух get, поскольку, насколько я могу судить, их функциональность не конфликтует. Так что это выглядело как:
def get(self, request, *args, **kwargs):
form_class = self.get_form_class()
form = self.get_form(form_class)
self.date_list, self.object_list, extra_context = self.get_dated_items()
context = self.get_context_data(form=form, object_list=self.object_list,
date_list=self.date_list)
context.update(extra_context)
return self.render_to_response(context)
Это правильный подход?
В качестве более крупного вопроса, откуда вы знаете, какие миксины можно использовать друг с другом? Мне пришлось обратиться к источнику django, чтобы понять, что оба класса реализуют get ().