Я изучаю Django. Я сделал все, что было объяснено в javatpoint (обучающий сайт), я сделал все миграции, я выполнил python manage.pymigrate, makemigrations, sqlmigrate appname 0001_initial все, форма создана успешно, но формазагрузка данных не сохраняется в базе данных.я просто хочу, чтобы данные (имя и фамилия) сохранялись в таблице сотрудников, а данные загружались в виде файла csv.
views.py
from django.http import HttpResponse
from django.shortcuts import render
# Create your views here.
from django.shortcuts import render, redirect
from name.forms import EmployeeForm
from name.models import Employee
import csv
def index(request):
if request.method == "POST":
form = EmployeeForm(request.POST)
if form.is_valid():
try:
return redirect('/')
except:
pass
else:
form = EmployeeForm()
return render(request,'index.html',{'form':form})
def getfile(request):
response = HttpResponse(content_type='text/csv')
response['Content-Disposition'] = 'attachment; filename="file.csv"'
employees = Employee.objects.all()
writer = csv.writer(response)
for employee in employees:
writer.writerow([employee.id,employee.first_name,employee.last_name])
return response
forms.py
from django import forms
from name.models import Employee
class EmployeeForm(forms.ModelForm):
class Meta:
model = Employee
fields = "__all__"
models.py
from __future__ import unicode_literals
from django.db import models
class Employee(models.Model):
first_name = models.CharField(max_length=20)
last_name = models.CharField(max_length=30)
class Meta:
db_table = "employee"
script.js
alert("Hello, Welcome to Javatpoint");
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Index</title>
</head>
<body>
<form method="POST" class="post-form" enctype="multipart/form-data">
{% csrf_token %}
{{ form.as_p }}
<button type="submit" class="save btn btn-default">Save</button>
</form>
</body>
</html>
style.css
h1{
color:red;
}
urls.py
from django.contrib import admin
from django.urls import path
from name import views
urlpatterns = [
path('admin/', admin.site.urls),
path('index/', views.index),
path('csv',views.getfile)
]
0001_initial.py(after migration)
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='Employee',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('first_name', models.CharField(max_length=20)),
('last_name', models.CharField(max_length=30)),
],
options={
'db_table': 'employee',
},
),
]