Прежде всего спасибо за то, что вы на время остановились, чтобы помочь мне решить проблему, даже если ваша небольшая помощь имеет большое значение. Я пытаюсь отредактировать фильтр своей формы, используя месяц, выбранный пользователем, есть ли способ устранить ошибку. когда я выбираю форму фильтра формы месяца и отправляю ее, выдает ошибку, упомянутую выше. Я начинаю django, даже если ваш маленький помогает
Мои модели
lass Event(models.Model):
COLOR_CHOICES = (
("ORANGE","Orange"),
("GREEN","Green"),
("YELLOW","Yellow"),
("BLUE","Blue"),
)
CALENDAR_CHOICES = (
("WORK","Work"),
("PROJECT","Project"),
)
user = models.ForeignKey(User,on_delete=models.CASCADE)
title = models.CharField(max_length=200)
date = models.DateTimeField(default=datetime.now,validators=[validate_date])
completed = models.BooleanField(default=False)
date_created = models.DateTimeField(auto_now=True,auto_now_add=False)
color = models.CharField(max_length=9,default="ORANGE",choices=COLOR_CHOICES)
calendar = models.CharField(max_length=9,default="WORK",choices=CALENDAR_CHOICES)
# end_time = models.DateTimeField()
def __str__(self):
return self.title
MONTH_CHOICES = (
("1","Jan"),
("2","Feb"),
("3","Mar"),
("4","Apr"),
("5","May"),
("6","June"),
("7","July"),
("8","Aug"),
("9","Sep"),
("10","Oct"),
("11","Nov"),
("12","Dec"),
)
class Approval(models.Model):
id = models.AutoField(primary_key=True)
user = models.ForeignKey(User,on_delete=models.CASCADE)
approved = models.BooleanField(default=False)
comment = models.CharField(default="Approved",max_length=250)
month = models.CharField(max_length=120, choices=MONTH_CHOICES, default="Jan")
# month = models.CharField(choices=Month_Choices,default=)
def __str__(self):
return str(self.approved)
Views.py
def user_event_view(request, pk):
today = datetime.now()
user = User.objects.get(id=pk)
events = user.event_set.all().order_by('date').filter(date__year=today.year, date__month=today.month)
event_filter = EventFilter(request.GET, queryset =events)
if request.method == 'POST':
form = ApprovalForm(request.POST)
if form.is_valid:
approval = form.save(commit=False)
approval.user = user
approval.save()
# form.save()
else:
form = ApprovalForm()
comments = user.approval_set.all()
context = {'events': events, 'user': user, 'form': form, 'comments':comments, 'filter':event_filter}
return render(request, 'tasks/hr_perUser_table.html', context)
Filters.py
from .models import Approval
import django_filters
class EventFilter(django_filters.FilterSet):
class Meta:
model = Approval
fields = ['month', ]
моя html страница ----
{% load crispy_forms_tags %}
{% block content %}
<div class="container" style="margin-top: 70px;">
<h1>USER EVENT TABLE OF EMPLOYEE NAME:{{ user.get_username }}</h1>
<form method="get">
{{ filter.form.as_p }}
<button type="submit">Search</button>
</form>
<div class="row">
<div class="col-sm-6">
<table class="table table-hover">
<thead class="thead-dark">
<th>Event</th>
<th>Date</th>
<th>Time</th>
</thead>
<tbody>
{% for e in filter.qs %}
<tr>
<td>{{ e.title }}</td>
<td>{{ e.date.date }}</td>
<td>{{ e.date.time }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
<div class="col-md-6">
<ul>
{% for comment in comments %}
<li>{{ comment.comment }}</li>
{% endfor %}
</ul>
<form class="" method = 'POST' action="">
{{ form|crispy }}
{% csrf_token %}
<input class="btn btn-sm btn-dark" type="submit" name="Submit" id="">
</form>
</div>
</div>
</div>
{% endblock %}