0

所以我试图让我的模型中的字段被隐藏但包含默认值并且无法更改因此被隐藏(是否有更安全的方法可以让默认字段始终是一个变量?)无论如何当我使用

username = forms.CharField(widget=forms.HiddenInput())

它只隐藏实际的输入字段,并让标签在网站的 html 上是免费的,所以有没有办法让我摆脱自由浮动的标签?有没有更好的方法将当前登录用户的用户名提交给模型?

现在我在这样的表格上使用 inital :

USER=request.user
ref_create = CashtextsForm(initial={'username': USER})

那是安全的吗?

4

1 回答 1

4

如果用户不需要编辑表单字段,最好不要将其包含在模型表单中——即使是隐藏的表单输入也可以由用户操作。

要删除它,只需将其添加到模型表单元类中的排除元组中:

class MyForm(forms.ModelForm):
    class Meta:
        model = MyModel
        exclude = ('username',)

然后,username在他们提交表单后设置为当前用户,您将在检查 if 后使用以下代码form.is_valid()

mymodel = form.save(commit=False)
mymodel.username = request.user
mymodel.save()
于 2012-04-19T19:45:51.373 回答