首页 > 解决方案 > 将上下文变量传递给表单

问题描述

我想将parent_username下面视图函数中的变量传递给LevelTestModelForm,以便我可以自动填写表单输入之一作为该变量。这是视图:

def LevelTestView(request, pk):
    parent_username = User.objects.get(pk=pk).username
    form = LevelTestModelForm()
    if request.method == "POST":
        form = LevelTestModelForm(request.POST)
        if form.is_valid():
            form.save()
            return reverse("profile-page")
    context = {
        "form": form
    }
    return render(request, "leads/leveltest.html", context)

我想要的是用户无需输入父用户名即可提交此表单。老实说,我什至不希望该字段出现在表单上,​​而只是在用户提交表单时自动添加它。我希望你们能帮忙。非常感谢。

LevelTestModelForm 获取更多信息:

class LevelTestModelForm(forms.ModelForm):
    username = parent
    class Meta:
        model = LevelTest
        fields = (
            'first_name',
            'last_name',
            'age',
            'username',
        )

标签: pythondjangoformsviewdjango-forms

解决方案


我建议将它作为initial参数传递给表单,如下所示:(假设parent您的表单中有一个字段)

form = LevelTestModelForm(initial={'parent': parent_username })

推荐阅读