3

ユーザーがフォーム1を送信します。

フォーム1は、フォーム2のシード情報として使用されますform_factory

フォームファクトリを使用するためにストックDjango1.3を誘導しようとした3時間後に、djangoフォームウィザードを使用します。

この情報をシードする方法を見つけようとしています。私は情報を持っています-私はそれをどこに貼り付けるかわからないだけです。(ああ、私にはアイデアがあります。)

--urls.py--

url(r'homes/bulk/$', 
   BulkHomeWizard.as_view([('home_0', BulkUploadFormOne), 
                           ('home_1', formset_factory(BulkUploadFormTwo, extra=1))])

--views.py--

クラスBulkHomeWizard(SessionWizardView):

def get_context_data(self, form, **kwargs):
    context = super(BulkHomeWizard, self).get_context_data(form, **kwargs)
    self.template_name = 'axis/bulk_%s.html' %  self.steps.current
    if self.steps.current == 'home_1':
        data = self.get_cleaned_data_for_step('home_0')
        # OK I have the data.. Now I thought I could simply pass the form back in....
        HomeFormSet = formset_factory(BulkUploadFormTwo, extra=0)
        form = HomeFormSet(initial=data['homes'])

        context.update({'form': form})
    return context

誰かがこれらの新しいフォームウィザードを知っているなら、もう一度私に与えてくれませんか。簡単だと思います...

4

2 に答える 2

4

古いバージョンのDjango用のDjango1.4ウィザードのバックポートがあります。

https://github.com/stephrdev/django-formwizard

1.4で非推奨になったDjango1.3ウィザードの代わりにこれを使用する必要があります。Django1.4への移植が簡単になります。

必要に応じて、次のようにDjango1.4への移植を準備できます。

try:
    # Django 1.4
    from django.contrib.formtools.wizard.views import SessionWizardView
except ImportError:
    # For older django version use formwizard backport
    from formwizard.views import SessionWizardView
于 2011-12-22T10:51:07.457 に答える
2

キーはSessionWizardViewです...これはDjangoの開発ブランチにあり、1.4までリリースされません。もちろん、開発ブランチをダウンロードしてSessionWizardViewを使用することもできますが、これは本番コードにはお勧めしません。

1.3のフォームウィザードの古いバージョンは、ここに記載されています。それははるかに少なく(したがって新しいバージョン)、基本的にすべてを隠しフィールドとして渡します。

于 2011-10-19T14:34:40.630 に答える