ビュー.py
def contact_list(request):
importform = ImportExcelForm()
if request.method == 'POST':
importform = ImportExcelForm(request.POST, request.FILES)
if importform.is_valid():
input_excel = request.FILES['input_excel']
book = xlrd.open_workbook(file_contents=input_excel.read())
excel_parser= ExcelParser()
success, log = excel_parser.read_excel(request.FILES['input_excel'] )
return redirect('/member/incident-types/')
else:
importform = ImportExcelForm()
return render(request, 'incident/contact_list.html',
{
'about_menu': True,
'ImportExcelForm':importform,
})
フォーム.py
class ImportExcelForm(Form):
input_excel = forms.FileField()
user = forms.ModelChoiceField(queryset=Contacts.objects.all())
def save(self):
records = xls.reader(self.cleaned_data["input_excel"])
for line in records:
input_data = Data()
input_data.place = self.cleaned_data["user"]
input_data.name = line[1]
input_data.number = line[2]
input_data.save()
models.py
class Contacts(models.Model):
user = models.ForeignKey(User, null=True)
name = models.CharField('Name', max_length=100)
number = models.IntegerField()
これはxlsファイルをインポートし、xlsファイルの名前と連絡先番号をデータベースフィールドに読み書きすることです.これでエラーは発生しませんが、データベース内のデータを解析していません.