Python 减少django modelform中的重复查询

Python 减少django modelform中的重复查询,python,django,query-optimization,query-performance,Python,Django,Query Optimization,Query Performance,我有一个modelform,可以在基于函数的视图中创建模型实例。 当createview呈现表单模板时,它会运行6个查询,我想减少这些查询。 是否有任何方法可以减少qs或提高模型创建视图的性能 型号.py class Teacher(models.Model): name = models.CharField(max_length=150) photo = models.ImageField(upload_to='teachers',

我有一个modelform,可以在基于函数的视图中创建模型实例。 当createview呈现表单模板时,它会运行6个查询,我想减少这些查询。 是否有任何方法可以减少qs或提高模型创建视图的性能

型号.py

class Teacher(models.Model):
    name = models.CharField(max_length=150)
    photo = models.ImageField(upload_to='teachers',
                              default='teacheravatar.jpg')
    date_of_birth = models.DateField(blank=True, null=True)
    designation = models.ForeignKey(Designation, on_delete=models.CASCADE)
    expertise = models.ManyToManyField(
        to=Topic, blank=True, related_name='expert_in')
    mobile = models.CharField(max_length=11, blank=True, null=True)
    email = models.CharField(max_length=255, blank=True, null=True)
    joining_date = models.DateField(auto_now=True)

    class Meta:
        ordering = ['joining_date', 'name']
*forms.py*

class TeacherForm(ModelForm):
    class Meta:
        model = Teacher
        fields = ['name', 'photo', 'date_of_birth',
                  'designation', 'expertise',
                  'mobile', 'email', ]
# THIS VIEW DUPLICATES QUEREIS
# AND RUNS 6 QUERIES
@login_required
def add_teacher_view(request):
    """
    :param request:
    :return: teacher add form
    """
    if request.method == 'POST':
        form = TeacherForm(request.POST)
        if form.is_valid():
            form.save()
            pk = form.instance.pk
            return redirect('teachers:teacher_details', pk=pk)
    form = TeacherForm()
    context = {'form': form}
    return render(request, 'teachers/add_teacher.html', context)

*views.py*

class TeacherForm(ModelForm):
    class Meta:
        model = Teacher
        fields = ['name', 'photo', 'date_of_birth',
                  'designation', 'expertise',
                  'mobile', 'email', ]
# THIS VIEW DUPLICATES QUEREIS
# AND RUNS 6 QUERIES
@login_required
def add_teacher_view(request):
    """
    :param request:
    :return: teacher add form
    """
    if request.method == 'POST':
        form = TeacherForm(request.POST)
        if form.is_valid():
            form.save()
            pk = form.instance.pk
            return redirect('teachers:teacher_details', pk=pk)
    form = TeacherForm()
    context = {'form': form}
    return render(request, 'teachers/add_teacher.html', context)


您需要告诉我们这些查询是什么。实际上,我在sql方面很弱,我正在使用django-debug-toolbar跟踪查询。您可以在这里看到: