Невозможно разрешить ключевое слово "месяц" в поле. Возможные варианты: календарь, цвет, завершено, дата, дата создания, идентификатор, заголовок, пользователь, идентификатор_пользователя. - PullRequest
0 голосов
/ 14 июля 2020

Прежде всего спасибо за то, что вы на время остановились, чтобы помочь мне решить проблему, даже если ваша небольшая помощь имеет большое значение. Я пытаюсь отредактировать фильтр своей формы, используя месяц, выбранный пользователем, есть ли способ устранить ошибку. когда я выбираю форму фильтра формы месяца и отправляю ее, выдает ошибку, упомянутую выше. Я начинаю 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 %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...