Mysql Django表格表演
我在代码审查中提出了这个问题,但它被拒绝了,原因是“代码被破坏”。这就是我在这里提出这个问题的原因。这个网站可能比代码审查网站更适合这个问题 在我的应用程序中,用户可以修改他们创建的课程。一个字段是“教师”字段,用户可以选择另一个人作为教师。这个ForeignKey创建了138个重复的查询,我不知道如何提高效率 型号:Mysql Django表格表演,mysql,django,Mysql,Django,我在代码审查中提出了这个问题,但它被拒绝了,原因是“代码被破坏”。这就是我在这里提出这个问题的原因。这个网站可能比代码审查网站更适合这个问题 在我的应用程序中,用户可以修改他们创建的课程。一个字段是“教师”字段,用户可以选择另一个人作为教师。这个ForeignKey创建了138个重复的查询,我不知道如何提高效率 型号: class CourseCatalog(models.Model): course_name = models.CharField(verbose_name="Course na
class CourseCatalog(models.Model):
course_name = models.CharField(verbose_name="Course name", max_length=50)
course_desc = models.TextField(verbose_name="Course Description")
teacher = models.ForeignKey(Teacher, blank=True, null=True,
verbose_name='Course Owner', on_delete=models.PROTECT)
...
视图:
模板:
...
<h3>Course Form</h3>
{{ user.teacher }}
<form action="" method="post">{% csrf_token %}
{{form|crispy}}
...
学校家庭成员
上次登录,学校家庭成员
是超级用户
,
学校家庭成员
用户名
,学校家庭成员
名字
,
学校家庭成员
姓氏,学校家庭成员
电子邮件学校家庭成员
是员工
,学校家庭成员
处于活动状态,学校家庭成员
加入日期,学校家庭成员
家庭id,school\u familymember
middle\u name
,school\u familymber
,school\u familymber
地址1,school\u familymber
地址2,school\u familymber
城市,school\u家庭成员
,州,学校家庭成员
邮政编码
,学校家庭成员
注释,学校家庭成员
,性别
,学校家庭成员
,电话号码
,school\u familymember
手机号码
来自school\u familymber
其中school\u familymber
id=220
教师模型也是FamilyMember表的外键,这就是我认为存在问题的地方。我想知道是否有一种方法可以进行一次查询来收集姓氏和ID,然后将其用于表单中的下拉列表。我可以用内置的表单管理器来实现这一点,还是必须放弃它,在视图中创建查询并将其传递给表单
class Teacher(models.Model):
family_member = models.OneToOneField(FamilyMember, verbose_name='name')
notes = models.TextField(blank=True)
创建一个自定义模型表单,并在
\uuuuu init\uuuuu
方法中更改教师查询集以提高效率
class CourseCatalogForm(forms.ModelForm):
class Meta:
fields = ['course_name','course_desc', 'teacher']
def __init__(self, *args, **kwargs):
super(CourseCatalogForm, self).__init__(*args, **kwargs)
self.fields['teacher'].queryset = self.fields['teacher'].queryset.select_related('family_member')
然后在视图中使用新的模型表单类,而不是指定字段
class EditCourseCatalog(UpdateView):
model = CourseCatalog
template_name = 'school/course_catalog/new_edit_form.html'
form_class = CourseCatalogForm
这是完整的
教师
模型吗?如果Teacher.\uuuuu unicode\uuuu
或Teacher.\uuuu str\uuuu
使用self.family\u成员的属性,这是典型的行为。
class CourseCatalogForm(forms.ModelForm):
class Meta:
fields = ['course_name','course_desc', 'teacher']
def __init__(self, *args, **kwargs):
super(CourseCatalogForm, self).__init__(*args, **kwargs)
self.fields['teacher'].queryset = self.fields['teacher'].queryset.select_related('family_member')
class EditCourseCatalog(UpdateView):
model = CourseCatalog
template_name = 'school/course_catalog/new_edit_form.html'
form_class = CourseCatalogForm