Раскручивая свои собственные общие взгляды в Django - PullRequest
2 голосов
/ 30 июня 2011

Документация 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 Ответ

2 голосов
/ 30 июня 2011

Поскольку документация django об универсальном представлении на основе классов все еще не очень современна, лучше всего получить больше информации о них, просмотрев исходный код; для создания / обновления представлений это хорошее начало.

При наследовании от нескольких классов / миксинов вы также должны следить за их порядком - если вы посмотрите на исходный код django, то увидите, что они ставят Mixins перед другими классами!

Мне не совсем понятно, чего вы пытаетесь достичь, но если ваша цель - показать форму с данными существующего объекта, django.views.generic.update.UpdateView должен быть вашим другом!

...