Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.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
Mysql Django表格表演_Mysql_Django - Fatal编程技术网

Mysql Django表格表演

Mysql Django表格表演,mysql,django,Mysql,Django,我在代码审查中提出了这个问题,但它被拒绝了,原因是“代码被破坏”。这就是我在这里提出这个问题的原因。这个网站可能比代码审查网站更适合这个问题 在我的应用程序中,用户可以修改他们创建的课程。一个字段是“教师”字段,用户可以选择另一个人作为教师。这个ForeignKey创建了138个重复的查询,我不知道如何提高效率 型号: class CourseCatalog(models.Model): course_name = models.CharField(verbose_name="Course na

我在代码审查中提出了这个问题,但它被拒绝了,原因是“代码被破坏”。这就是我在这里提出这个问题的原因。这个网站可能比代码审查网站更适合这个问题

在我的应用程序中,用户可以修改他们创建的课程。一个字段是“教师”字段,用户可以选择另一个人作为教师。这个ForeignKey创建了138个重复的查询,我不知道如何提高效率

型号:

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