【发布时间】:2019-04-04 00:06:48
【问题描述】:
我正在尝试在项目中显示用户的个人资料。我想呈现一个表单,但使其禁用/无法更改(仅显示)。我无法弄清楚它的语法。帮助将不胜感激!
这是 view.py:
@login_required
def profile(request):
user_form = UserForm(instance=request.user)
user_form.fields.disabled = True <------- HELP HERE
return render(request, 'rentadevapp/profile.html', {'user_form': user_form})
我本质上只想显示一个只读/禁用的表单。然后,用户有一个编辑按钮,可将他们带到个人资料编辑页面。
感谢您的帮助!
这是html以防万一:
<form method="GET" action="/profile_edit">{% csrf_token %}
{{ user_form|crispy }}
<button type="submit" class="edit btn btn-default btn-block btn-lg">Edit</button><br>
</form>
Forms.py
class UserForm(forms.ModelForm):
password = forms.CharField(label='Password', widget=forms.PasswordInput)
password2 = forms.CharField(label='Repeat password', widget=forms.PasswordInput)
class Meta:
model = User
fields = ('username', 'first_name', 'last_name', 'email')
【问题讨论】:
-
UserForm是自己定义的自定义表单吗? -
@lmiuelvargasf ,是的。查看更新的文本
-
您需要根据您在页面上单击的按钮来启用/禁用,还是在渲染后重新启用/禁用?
-
@lmiguelvargasf ,我只需要禁用它的页面