如何使用Django表单字段在网页上显示字符串

时间:2016-10-11 18:46:09

标签: python django django-forms django-views

我有一个我创建的django页面并设法将值传递给它。 我正在尝试制作一个包含一些字符串的文本框。 如果需要,用户可以编辑和保存此字符串。

views.py

form = EditProjectForm(project_name = project_name,store_id=store_id, `enter code here`start_date=start_date,end_date=end_date,data = request.POST or None)
context = {'someList': someList ,'form':form}
return render(request, 'editview.html', context)

forms.py

class EditProjectForm(forms.Form):
    def __init__(self, *args, **kwargs):
    self.project_name = kwargs.pop('project_name')
    super(EditProjectForm, self).__init__(*args, **kwargs)
    self.fields['project_name'] = forms.CharField(self.project_name)

我尝试使用

forms.CharField(widget=forms.TextInput(attrs={'placeholder': self.project_name }))

但这并没有显示为可编辑的文字。

我希望self.project_name在我的页面上显示在文本框中并且可以编辑。

这就是我希望输出看起来像

desired output

编辑1: 我使用itzmeontv提示使用'初始' 感谢'初始' 但是,它似乎仅在我在创建表单时不传递参数时起作用

例如。 我的views.py中的form = EditProjectForm()似乎有效, 但 form = EditProjectForm(project_name = project_name) 然后设置 initial = self.project_name,不起作用。

编辑2: 使用form = EditProjectForm(initial = {'project_name':project_name}) 似乎工作。 谢谢!!

1 个答案:

答案 0 :(得分:1)

使用initial

尝试此操作
forms.CharField(widget=forms.TextInput(attrs={'placeholder': self.project_name }), initial=self.project_name)

form = EditProjectForm(#your arguments, initial={'project_name': self.project_name})