models.py
from django.db import models
from django.contrib.auth.models import User
CHOICES = (('Earned Leave','Earned Leave'),('Casual Leave','Casual Leave'),('Sick Leave','Sick Leave'),('Paid Leave','Paid Leave'))
class Leave(models.Model):
employee_ID = models.CharField(max_length = 20)
name = models.CharField(max_length = 50)
user = models.ForeignKey(User, on_delete = models.CASCADE, null =True)
type_of_leave = models.CharField(max_length = 15, choices = CHOICES)
from_date = models.DateField()
to_date = models.DateField()
)
def __str__(self):
return self.name
views.py
from django.shortcuts import render
from django.http import HttpResponse, HttpResponseRedirect
from .forms import LeaveRequestForm
from django.shortcuts import render_to_response
from .models import Leave
...
def leaveRequest(request):
form_class = LeaveRequestForm
if request.method == "POST":
form = LeaveRequestForm(request.POST)
if form.is_valid():
leave = form.save(commit = False)
leave.user = request.user
form.save()
return HttpResponseRedirect("/thanks/")
else:
return auto_fill_form(request)
def leaves_sick(request):
data = Leave.objects.filter(employee_ID = request.user.username)
sl = "sg"
for obj in data:
if obj.type_of_leave == 'Sick Leave':
sl += obj.date_diff
return render(request, "status.html",{'sl':data})
forms.py
from django.forms import ModelForm, Textarea, DateInput
from lrequests.models import Leave
class LeaveRequestForm(ModelForm):
class Meta:
fields = ("name", "type_of_leave", "from_date", "to_date")
model = Leave
urls.py
from django.urls import path, include
from . import views
app_name='lrequests'
urlpatterns = [
path('lrequests/',views.leaveRequest, name = 'request'),
path('status/', views.get_data, name = 'status'),
path('status/', views.leaves_sick, name = 'sick'),
]
По сути, это функция, которая работает с посещаемостью сотрудника, типом отпусков и т. Д. Если сотрудник запрашивает отпуск с типом «el» (Заработанный отпуск), мне нужно вернуть, сколько раз в прошлом он имел запрашивается за заработанные отпуска из базы данных (при условии, что в базе данных есть несколько запросов от пользователя)
Я работаю над "системой управления отпуском". Мне нужно знать, сколько раз пользователь запрашивал отпуск. Сначала пользователь отправляет администратору форму запроса на отпуск с помощью ModelForms. Существуют типы отпусков, такие как "earned_leave", .... и т. Д. Теперь мне нужно получить данные, сколько раз сотрудник запрашивал отпуск для «заработанного_платы», «оплаченного_платы», ... и т. Д. И отражать это число в шаблоне.
* Обновление - я использую dbsqlite3 db по умолчанию.
def leave_count(request):
queryset = Leave.objects.filter(employee_ID = request.user.username, type_of_leave = 'Sick Leave')
return render(request, "history.html", {'queryset' : queryset})
С тех пор я не знаю, как запросить базу данных, которую я поместил в views.py. Это не сработало.