我创建了一个 django 页面,并设法向其传递值。我正在尝试制作一个包含一些字符串的文本框。如果需要,用户可以编辑并保存该字符串。
View .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)
表单.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() 似乎有效,但表单 = EditProjectForm(项目名称 = 项目名称)然后设置初始 = self.project_name ,不起作用。
编辑2:使用 form = EditProjectForm(initial={'project_name': project_name})似乎有效。谢谢!!
尝试使用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})
我是一名优秀的程序员,十分优秀!