Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django一对一关系和初始值_Django_Django Forms_One To One - Fatal编程技术网

Django一对一关系和初始值

Django一对一关系和初始值,django,django-forms,one-to-one,Django,Django Forms,One To One,我正在学习编码,并试图用Django制作一个小应用程序 我有两个模型,组和列表。其思想是用户创建一个组,然后创建一个学生列表(使用表单集) 该列表中的所有学生都应分配到您刚刚创建的组。我已经设置了一对一的关系,但是这样,用户必须为每个学生选择组(假设所有这些学生都属于这个组,所以我认为重复这样做是不必要的)。 这是一种观点: def addList(request): AddListFormSet = modelformset_factory(List, fields

我正在学习编码,并试图用Django制作一个小应用程序

我有两个模型,组和列表。其思想是用户创建一个组,然后创建一个学生列表(使用表单集)

该列表中的所有学生都应分配到您刚刚创建的组。我已经设置了一对一的关系,但是这样,用户必须为每个学生选择组(假设所有这些学生都属于这个组,所以我认为重复这样做是不必要的)。 这是一种观点:

def addList(request):

    AddListFormSet = modelformset_factory(List, 
        fields=("name", "last_name", "second_last_name", "group"), 
    extra=2,)

    if request.method == "POST":
        form = AddListFormSet(request.POST)
        form.save()
        return redirect("/grupos")

    form = AddListFormSet(queryset=List.objects.none())

    return render(request, "new_list.html", {"form": form})

如何预先分配我刚刚为下一步捕获的所有学生创建的组?

您可以将组id以参数形式从创建组的页面传递到创建列表的页面。因此,您可以使用它在表单中自动填充列表字段“group”


另外,使组字段可编辑,以便在表单中输入数据时,您可以从可用组的下拉菜单中更改组。

谢谢,我得到了第一部分,现在我可以将组的id传递到下一个视图,但是如何在AddListFormSet中“自动填充”组字段?仍然不明白。您可以在表单函数中使用Javascript/jquery或python访问HTML中的表单字段。
def addList(request):

    AddListFormSet = modelformset_factory(List, 
        fields=("name", "last_name", "second_last_name", "group"), 
    extra=2,)

    if request.method == "POST":
        form = AddListFormSet(request.POST)
        form.save()
        return redirect("/grupos")

    form = AddListFormSet(queryset=List.objects.none())

    return render(request, "new_list.html", {"form": form})