想做一个公寓管理的简单系统,建立不同楼栋,楼层,房间的模型,实现对房间内人员添加,删除。根据信息检索查询。可以根据表格,批量导入房间的功能。
本人没任何基础,希望高人指点迷津,如需自学需要从什么开始。
不限语言?django做容易点
from django.shortcuts import render, redirect
from django.http import HttpResponse
from .models import Building, Floor, Room, Tenant
from .forms import TenantForm, RoomForm
import csv
def building(request):
buildings = Building.objects.all()
return render(request, 'building.html', {'buildings': buildings})
def floor(request, building_id):
floors = Floor.objects.filter(building_id=building_id)
return render(request, 'floor.html', {'floors': floors})
def room(request, floor_id):
rooms = Room.objects.filter(floor_id=floor_id)
return render(request, 'room.html', {'rooms': rooms})
def add_tenant(request, room_id):
tenants = Tenant.objects.filter(room_id=room_id)
if request.method == 'POST':
form = TenantForm(request.POST)
if form.is_valid():
form.save()
return redirect('room', floor_id=form.cleaned_data['room'].floor.id)
else:
form = TenantForm(initial={'room': room_id})
return render(request, 'add_tenant.html', {'form': form, 'tenants': tenants})
def delete_tenant(request, tenant_id):
room_id = Tenant.objects.get(id=tenant_id).room.id
Tenant.objects.filter(id=tenant_id).delete()
return redirect('add_tenant', room_id=room_id)
def import_rooms(request, floor_id):
if request.method == 'POST':
csv_file = request.FILES['csv_file']
if not csv_file.name.endswith('.csv'):
return HttpResponse('File is not CSV type')
csv_data = csv.reader(csv_file.read().decode('utf-8').splitlines())
for row in csv_data:
room = Room()
room.floor_id = floor_id
room.number = row[0]
room.area = row[1]
room.save()
return redirect('room', floor_id=floor_id)
else:
return render(request, 'import_rooms.html')