我有一个我创建的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在我的页面上显示在文本框中并且可以编辑。
这就是我希望输出看起来像
编辑1: 我使用itzmeontv提示使用'初始' 感谢'初始' 但是,它似乎仅在我在创建表单时不传递参数时起作用
例如。 我的views.py中的form = EditProjectForm()似乎有效, 但 form = EditProjectForm(project_name = project_name) 然后设置 initial = self.project_name,不起作用。
编辑2: 使用form = EditProjectForm(initial = {'project_name':project_name}) 似乎工作。 谢谢!!
答案 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})