내 모델 중 하나의 컨텐트를 만들기 위해 장고 폼 마법사가 잘 작동합니다. 기존 컨텐츠의 데이터를 편집 할 때 동일한 마법사를 사용하고 싶지만이를 수행하는 좋은 예는 찾을 수 없습니다.Django 폼 마법사로 모델 편집
내가 볼
FORMS = [
('project_essentials', ProjectEssentialsForm),
('project_your_info', ProjectYourInfoForm),
]
urlpatterns = patterns('',
(r'^projects/add$', ProjectWizard.as_view(FORMS)),
)
urls.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]]
forms.py : 여기
내 프로젝트 코드의 단순화 된 버전입니다 이 기능이있다
https://docs.djangoproject.com/en/dev/ref/contrib/formtools/form-wizard/#django.contrib.formtools.wizard.views.WizardView.get_form_instance 양식 인스턴스를 설정하는 방법에 대해 설명합니다. 그러나 여기에서 조회를 수행 할 모델 ID를 얻는 방법과 코드가 어떻게 작동하는지 정확히 알지 못합니다.
코드 예제 또는 하나에 대한 링크를 가장 높이 평가할 수 있습니다.
덕분에, 피트
양식 마법사를 구현하려고하는데 문제가 있습니다. 당신은 도와주세요 : 게시물은 다음과 같습니다. http://stackoverflow.com/questions/24173367/form-wizard-initial-data-for-edit-not-loading-properly-in-django –
로드 할 수 있습니다. 첫 번째 양식의 초기 데이터,하지만 첫 번째 양식을 제출 한 후 제출 URL을 만들려면 예 : from/Item/edit/1 to/Item/create –