这是用户/员工请假的项目,管理员可以查看。
models.py
from django.db import models
from django.contrib.auth.models import User
CHOICES = (('1','Earned Leave'),('2','Casual Leave'),('3','Sick Leave'),('4','Paid Leave'))
class Leave(models.Model):
user = models.ForeignKey(User, on_delete = models.CASCADE, null =True)
name = models.CharField(max_length = 50)
employee_ID = models.CharField(max_length = 20)
department = models.CharField(max_length = 15)
designation = models.CharField(max_length = 15)
type_of_leave = models.CharField(max_length = 15, choices = CHOICES, default = None)
from_date = models.DateField()
to_date = models.DateField()
reporting_manager = models.CharField(max_length = 50, default = None)
reason = models.CharField(max_length= 180)
def __str__(self):
return self.name
forms.py
from django import forms
from lrequests import models
CHOICES = (('1','Earned Leave'),('2','Casual Leave'),('3','Sick Leave'),('4','Paid Leave'))
class LeaveRequestForm(forms.ModelForm):
class Meta:
fields = ("name", "employee_ID", "department", "designation", "type_of_leave", "from_date", "to_date", "reporting_manager", "reason")
model = models.Leave
admin.py
from django.contrib import admin
from . import models, forms
class LeaveAdmin(admin.ModelAdmin):
form = forms.LeaveRequestForm
admin.site.register(models.Leave, LeaveAdmin)
在views.py文件中,我不确定如何编码将数据存储在 数据库。这样管理员可以查看从表单获取的数据。
views.py
from django.shortcuts import render
from django.http import HttpResponseRedirect
from .forms import LeaveRequestForm
from django.views.generic import TemplateView
def leaveRequest(request):
form_class = LeaveRequestForm
if request.method == "POST":
form = LeaveRequestForm(request.POST)
if form.is_valid():
leave = form.save(commit = False)
return HttpResponse("Sucessfully submitted")
else:
return render(request, "request_form.html", {'form' : form_class})
这是我的模板。
{% extends "base.html" %}
{% block content %}
<div class="container">
<h4>
<form role="form", method="POST">
{% csrf_token %}
{{ form.as_p }}
<button type = "submit">Submit</button>
</form>
</h4>
</div>
{% endblock %}
答案 0 :(得分:0)
这是一个基本问题,但这是您应该做的
def leaveRequest(request):
form_class = LeaveRequestForm
if request.method=='POST': #executes when you submit the form
form = LeaveRequestForm(request.POST) #gets the form's data
if form.is_valid(): #checks if the data is valid
lvreq = form.save() #saves the data
return HttpResponse('Saved')
else:
return HttpResponse('invalid data entered') #error message
return render(request, "request_form.html", {'form' : form_class})
答案 1 :(得分:0)
这是答案!
from django.shortcuts import render
from django.http import HttpResponse
from .forms import LeaveRequestForm
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 HttpResponse("Sucessfully submitted")
else:
form = LeaveRequestForm()
return render(request, "request_form.html", {'form' : form_class})
答案 2 :(得分:0)
在forms.py和views.py中进行以下更改,您将获得所需的结果。 forms.py
from django import forms
from lrequests import models
CHOICES = (('1','Earned Leave'),('2','Casual Leave'),('3','Sick Leave'),('4','Paid Leave'))
class LeaveRequestForm(forms.ModelForm):
name = forms.CharField(max_length=30)
employee_ID = forms.CharField(max_length=30)
department = forms.CharField(max_length=30)
designation = forms.CharField(max_length=15)
type_of_leave = forms.CharField(max_length=15)
from_date = forms.CharField(max_length=30)
to_date = forms.CharField(max_length=30)
reporting_manager = forms.CharField(max_length=30)
reason = forms.CharFieldforms.CharField(max_length=200)
class Meta:
fields = ("name", "employee_ID", "department", "designation", "type_of_leave", "from_date", "to_date", "reporting_manager", "reason")
model = models.Leave
views.py
from django.shortcuts import render
from django.http import HttpResponseRedirect
from .forms import LeaveRequestForm
from django.views.generic import TemplateView
from .models import Leave
def leaveRequest(request):
form_class = LeaveRequestForm
if request.method == "POST":
form = LeaveRequestForm(request.POST)
if form.is_valid():
leave = Leave(
user = request.user
name = request.POST.get('name','')
employee_ID = request.POST.get('employee_ID','')
department = request.POST.get('department','')
designation = request.POST.get('designation','')
type_of_leave = request.POST.get('type_of_leave','')
from_date = request.POST.get('from_date','')
to_date = request.POST.get('to_date','')
reporting_manager =request.POST.get('reporting_time','')
reason = request.POST.get('reason','')
)
leave.save()
return HttpResponse("Sucessfully submitted")
else:
return render(request, "request_form.html", {'form' : form_class})