Раскручивая свои собственные общие взгляды в Django
В документации Django упоминается в базовых представлениях на основе классов, из которых состоит DetailView: View, SingleObjectMixin и SingleObjectTemplateResponseMixin. Я экспериментирую с этим, поскольку меня интересует создание универсального представления, которое будет выполнять представление object_detail с ModelForm, чтобы строки моей модели могли генерироваться автоматически.
Чтобы попытаться дублировать DetailView, я попытался создать класс следующим образом:
from django.views.generic import list_detail, View
from django.views.generic.detail import (SingleObjectMixin,
SingleObjectTemplateResponseMixin, BaseDetailView)
class formdisplay(View,SingleObjectMixin,SingleObjectTemplateResponseMixin): pass
Когда я использую formdisplay вместо list_detail.object_detail, я получаю сообщение об ошибке
TypeError at /inpatient-detail/4/
__init__() takes exactly 1 non-keyword argument (2 given)
Любые намеки на то, как это сделать?
Кроме того, где находится документация о том, как писать операторы импорта? Мне пришлось искать в Google, что импортировать, так как я не смог найти это в документации.
Заранее спасибо Стив
1 ответ
Так как документация django об универсальном представлении на основе классов все еще не очень современна, лучше всего получить больше информации о них, это просмотреть исходный код; для создания / обновления просмотров это хорошее начало.
При наследовании от нескольких классов / миксинов вы также должны следить за их порядком - если вы посмотрите на исходный код django, вы увидите, что они ставят миксины перед другими классами!
Мне не совсем понятно, чего вы пытаетесь достичь, но если ваша цель - отобразить форму с данными из существующего объекта, django.views.generic.update.UpdateView
должен быть твоим другом!