【问题标题】:django pre filled formdjango 预填表格
【发布时间】:2021-08-19 01:47:30
【问题描述】:

我希望在第一次渲染时预先填充表单数据,初始参数根本不影响表单。 当用户编辑个人资料时,我希望用户数据显示在表单中。

def profile_update(request):
    if request.method == 'POST':
        form = UpdateProfile(
            initial={'username': 'Hi there!'}, instance=request.user)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect(reverse('profile'))
    else:
        form = UpdateProfile()

    return render(request, 'users/profile_update.html', {'form': form})


class UpdateProfile(forms.ModelForm):
    email = forms.EmailField()
    img = forms.ImageField(label='img', required=False)

    class Meta:
        model = TbUser
        fields = ['username', 'img', 'email', 'cellphone', 'empno', 'real_name', 'nfc_id',
                  'sex', 'role', 'department']

【问题讨论】:

    标签: django forms django-models django-forms


    【解决方案1】:

    如果是 GET 请求,您需要将 initial 传递给表单:

    from django.shortcuts import redirect
    
    def profile_update(request):
        if request.method == 'POST':
            form = UpdateProfile(request.POST, request.FILES, instance=request.user)
            if form.is_valid():
                form.save()
                return redirect('profile')
        else:
            form = UpdateProfile(initial={'username': 'Hi there!'})
    
        return render(request, 'users/profile_update.html', {'form': form})

    【讨论】:

      猜你喜欢
      • 2012-07-20
      • 2014-12-06
      • 1970-01-01
      • 2012-08-14
      • 2010-10-30
      • 2023-02-10
      • 2013-02-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多