Мастер форм Django для редактирования модели
У меня есть мастер форм Django, прекрасно работающий для создания контента одной из моих моделей. Я хочу использовать тот же Мастер для редактирования данных существующего контента, но могухороший пример того, как это сделать.
Вот упрощенная версия кода моего проекта:
forms.py
class ProjectEssentialsForm(forms.ModelForm):
class Meta:
model = Project
fields = [
'title',
'short_description',
'who_description',
'problem_description',
'solution_description'
]
class ProjectYourInfoForm(forms.ModelForm):
class Meta:
model = Project
fields = [
'gender',
'location',
'post_code',
'sector',
]
views.py
TEMPLATES = {
'project_essentials': 'projects/essentials-form.html',
'project_your_info': 'projects/your-info-form.html',
}
class ProjectWizard(SessionWizardView):
instance = None
def get_form_instance(self, step):
"""
Provides us with an instance of the Project Model to save on completion
"""
if self.instance is None:
self.instance = Project()
return self.instance
def done(self, form_list, **kwargs):
"""
Save info to the DB
"""
project = self.instance
project.save()
def get_template_names(self):
"""
Custom templates for the different steps
"""
return [TEMPLATES[self.steps.current]]
urls.py
FORMS = [
('project_essentials', ProjectEssentialsForm),
('project_your_info', ProjectYourInfoForm),
]
urlpatterns = patterns('',
(r'^projects/addЯ вижу, что есть эта функцияhttps://docs.djangoproject.com/en/dev/ref/contrib/formtools/form-wizard/#django.contrib.formtools.wizard.views.WizardView.get_form_instance для установки экземпляра формы, но яЯ не уверен, как вы могли бы получить идентификатор модели, чтобы выполнить поиск здесь, и как именно будет работать код.
Пример кода или ссылка на него будут наиболее цениться.
Спасибо, Пит
, ProjectWizard.as_view(FORMS)),
)
Я вижу, что есть эта функцияhttps://docs.djangoproject.com/en/dev/ref/contrib/formtools/form-wizard/#django.contrib.formtools.wizard.views.WizardView.get_form_instance для установки экземпляра формы, но яЯ не уверен, как вы могли бы получить идентификатор модели, чтобы выполнить поиск здесь, и как именно будет работать код.
Пример кода или ссылка на него будут наиболее цениться.
Спасибо, Пит