django格式的初始值

django格式的初始值,django,django-models,django-forms,django-views,django-formwizard,Django,Django Models,Django Forms,Django Views,Django Formwizard,大家好,这是我的代码 class F1articles(forms.Form): heading=forms.CharField(max_length=100) content=forms.CharField(widget=forms.Textarea) class F2articles(forms.Form): country=forms.CharField(max_length=100) work=forms.CharField(max_length=100) 这是在url

大家好,这是我的代码

class F1articles(forms.Form):
  heading=forms.CharField(max_length=100)
  content=forms.CharField(widget=forms.Textarea)
class F2articles(forms.Form):
  country=forms.CharField(max_length=100)
  work=forms.CharField(max_length=100)
这是在url.py中

url(r'^create/(?P<project_id>\d+)/$', FarticlesWizard.as_view([F1articles, F2articles]))

这可以正常工作,没有问题,但我想在调用url时设置表单字段的初始值,是否有办法解决此问题?

您可以实现向导视图。获取表单初始值(步骤)方法为向导的每个步骤提供初始数据

比如:

class FarticlesWizard(SessionWizardView):
    def get_form_initial(self, step):
        init_dict = {}
        #get object to populate data
        if step == '1':
            init_dict = { 'heading': obj.heading, 'content' : obj.content }
        if step == '2':
            init_dict = { 'country': obj.country, 'work' : obj.work }

        return init_dict

我不确定你是如何从url获取
项目id
来查询对象的。

嗯,我已经成功了,让我回答我自己的问题,…这是代码

    def get_form_initial(self,step):

    if 'project_id' in self.kwargs:
        project_id=self.kwargs['project_id']
        article=Marticles.objects.get(id=project_id)
        project_dict = model_to_dict(article)
        return project_dict
    else:
        return self.initial_dict.get(step,{})

我想这对你会很有帮助的,guyzz…

你好Rohan,问题更新了,,,,请检查,,,你好Rohan,我尝试了你的方法,但我得到了一个错误
get\u form\u initial()正好取1个参数(给定2个)
,我从这里获取项目id
kwargs['project\u id']
@Friend,它也应该取
self
参数,检查更新的定义。嗨,Rohan,我尝试了你的方法,它没有初始值,但是显示了带有空数据的表单,并且在提交
FarticlesWizard类时也出现了错误。类没有定义一个done()方法,这是必需的
@Friend,你的视图中没有像你所讨论的那样有
done()
方法吗?嗨,Rohan,非常感谢您的尝试,我现在已经开始工作了,我已经发布了答案。。。。
    def get_form_initial(self,step):

    if 'project_id' in self.kwargs:
        project_id=self.kwargs['project_id']
        article=Marticles.objects.get(id=project_id)
        project_dict = model_to_dict(article)
        return project_dict
    else:
        return self.initial_dict.get(step,{})