以下代码怎么修改才能达到不重代码呢?
<p>一有个小工具,通过excel批量度入到数所库中,但发现重复代码比较多
先上两个model</p>
<pre class="codehilite">class Classification(models.Model):
title = models.CharField(verbose_name="类别名称", max_length=32)
def __str__(self):
return self.title
class Department(models.Model):
dep_name = models.CharField(verbose_name="部门名称", max_length=32)
</pre>
<p>然后在上一个工具/utils/import_excel.py</p>
<pre class="codehilite">import xlrd
def import_excel(file):
wb = xlrd.open_workbook(filename=None, file_contents=file.read())
table = wb.sheets()[0]
nrows = table.nrows
return table,nrows</code></pre>
<p>在上两个views视图,
问题1.在这两个视图中就中人有生成queryset的地方不一样,其他代码是一样的,我应该怎么处理?而</p>
<pre class="codehilite">
from django.shortcuts import render, redirect, HttpResponse, reverse
from django.db import transaction
from faa import models
from utils import import_excel
def classification(request):
if request.method == "POST":
file = request.FILES
excel = file['excel']
model_obj = []
table, nrows = import_excel.import_excel(excel)
try:
with transaction.atomic():
for i in range(0, nrows):
obj = models.Classification(title=table.row_values(i)[0])
model_obj.append(obj)
models.Classification.objects.bulk_create(model_obj)
except Exception as e:
return HttpResponse('出现错误...%s' % e)
return redirect(reverse("faa:cl_list"))
return render(request, "import/import.html")
def department(request):
if request.method == "POST":
file = request.FILES
excel = file['excel']
model_obj = []
table, nrows = import_excel.import_excel(excel)
try:
with transaction.atomic():
for i in range(0, nrows):
obj = models.Classification(dep_name=table.row_values(i)[0])
model_obj.append(obj)
models.Classification.objects.bulk_create(model_obj)
except Exception as e:
return HttpResponse('出现错误...%s' % e)
return redirect(reverse("faa:cl_list"))
return render(request, "import/import.html")</code></pre>
评论 0