Python 减少django modelform中的重复查询
我有一个modelform,可以在基于函数的视图中创建模型实例。 当createview呈现表单模板时,它会运行6个查询,我想减少这些查询。 是否有任何方法可以减少qs或提高模型创建视图的性能 型号.pyPython 减少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',
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跟踪查询。您可以在这里看到: