【问题标题】:Django Forms.py Change EmailField Value To Auto Populated value="{{ user.email }}"Django Forms.py 将 EmailField 值更改为自动填充 value="{{ user.email }}"
【发布时间】:2019-12-13 16:40:18
【问题描述】:

我希望我的 Django 表单的 EmailField 自动填充用户的电子邮件。这是如何实现的?我没有在这个表单中使用 models.py。

完整代码: https://dpaste.org/4PrR

我想要 'value':{{ user.email }}

而不是 'value':'hi'

forms.py 中的代码:

payment_email = forms.EmailField(widget=forms.TextInput(attrs={'class':'form-control', 'autocomplete':'off', 'type':'email', 'id':'email', 'value':'hi', 'readonly':'readonly'}), required=True)

def __init__(self, *args, **kwargs):
        super(PaymentForm, self).__init__(*args, **kwargs)
        self.fields['payment_email'].label = "Email:"

【问题讨论】:

  • 传递 user.email 而不是 hi。
  • @MD.KhairulBasar 我收到 NameError:未定义名称“用户”。我该怎么做才能修复它?

标签: python django forms


【解决方案1】:

在实例化表单时使用initial 参数。

form = PaymentForm(data, initial={'payment_email': user.email})

【讨论】:

  • 我应该把这段代码放在views.py 或forms.py 的什么地方?我也收到了@MD.KhairulBasar 上面的建议的错误。
  • 在尝试了一些事情之后,我让它工作了。在视图中,我需要 form = PaymentForm(initial={'payment_email': request.user.email}) 和 form = PaymentForm(data, initial={'payment_email': request.user.email})。非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-21
  • 2020-10-24
  • 2023-03-27
  • 2018-12-22
相关资源
最近更新 更多