【问题标题】:Read-only field with pre-populated data in django formdjango 表单中带有预填充数据的只读字段
【发布时间】:2019-03-19 22:09:58
【问题描述】:

我有以下 sn-ps,

# models.py
class Test(models.Model):
    username = models.CharField(max_length=100)
    email = models.EmailField()


# forms.py
class TestForm(forms.ModelForm):
    username = forms.CharField()
    email = forms.EmailField()

    class Meta:
        model = Test
        fields = ('username', 'email')


# views.py
def test(request):
    email = "example@example.com"
    """
    How to pass and show the 'email' in django form/template?
    """
    if request.method == 'POST':
        form = TestForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('home')
    else:
        form = TestForm()
    return render(request, 'test.html', {"form": form})

我如何显示和重用 Django 表单/模板中email 变量(即example@example.com)的值作为read-only field?

【问题讨论】:

  • 可能不是重复的,但密切相关:stackoverflow.com/questions/324477/…
  • 也非常相关,几乎是我评论的前一个问题的欺骗:stackoverflow.com/questions/41271979/…
  • @BrianH。 disabled=True部分地完成这项工作。它没有显示email 字段的值
  • 是的,这就是为什么我说它不是完全重复的。
  • @BrianH。无论如何,经过一番挖掘,我得到了答案:)

标签: django django-forms


【解决方案1】:

尝试这样做:

class TestForm(forms.ModelForm):
    .....
    email = forms.EmailField(initial='{{ context.email }}', disabled=True)
    .....

从视图传递的上下文应该有“电子邮件”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-06
    • 2019-04-14
    • 2012-08-14
    • 2016-10-07
    • 1970-01-01
    • 1970-01-01
    • 2013-01-11
    • 2015-11-21
    相关资源
    最近更新 更多