如何解决Django一对一关系和初始值
我正在学习编码,并且尝试使用Django制作一个小型应用程序。
我有两个模型,组和列表。这个想法是,用户创建一个组,然后创建一个学生列表(使用表单集)。
class Groups(models.Model):
name = models.CharField(max_length=50)
students_number = models.IntegerField()
def __str__(self):
return self.name
class List(models.Model):
name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
second_last_name = models.CharField(max_length=50)
group = models.OnetoOneField(Groups,max_length=50,on_delete=models.CASCADE,default="Grupo")
def __str__(self):
return self.name
该列表上的所有学生都应分配到您刚刚创建的小组中。我已经设置了一对一的关系,但是这样,用户必须为每个学生选择组(假定所有这些学生都属于该组,因此我认为重复做是不必要的)。 这是视图:
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从创建组的页面传递到要创建列表的页面。因此,您可以使用它来自动填充表单中的列表字段“组”。
而且,使组字段可编辑,以便在以表格形式输入数据时,您可以从可用组的下拉菜单中更改组。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。