Проблема с отображением и подгонкой запросов в SelectMultiple, формы django
У меня проблема с отображением потенциальных участников в поле выбора select multiple. Обычная логика такова: пользователь подает заявку на участие, а администратор одобряет его участие через select multiple. Проблема в том, что в этом поле у меня отображаются все заявки для всех событий, без какого-либо фильтра. Я начал пробовать чужие решения, но даже это не работает.
Вот две формы, о которых идет речь
class EventForm(forms.ModelForm):
class Meta:
model = Event
fields = ('name', 'venue', 'event_date', 'participants', 'short_description', 'description') #"__all__"name
widgets ={
'name' : forms.TextInput(attrs={'class':'form-control'}),
'manager' : forms.Select(attrs={'class':'form-select'}),
'venue' : forms.Select(attrs={'class':'form-select'}),
'event_date' : forms.TextInput(attrs={'class':'form-control'}),
#'participants': forms.SelectMultiple(attrs={'class':'form-control'}),
'participants' : forms.SelectMultiple(
to_field_name="participants",
queryset=Participant.objects.filter(attending__event=event_id, attending__is_attending=True), # error in "event_id"
widget=forms.CheckboxSelectMultiple),
'short_description' : forms.Textarea(attrs={'class': 'form-control'}),
'description' : forms.Textarea(attrs={'class': 'form-control'}),
}
class ParticipantForm(forms.ModelForm):
user = forms.ModelChoiceField(queryset=User.objects.all(), widget=forms.HiddenInput())
event = forms.ModelChoiceField(queryset=Event.objects.all(), widget=forms.HiddenInput())
class Meta:
model = Participant
fields = ['event', 'user']
и это функции
def is_attending(request, event_id):
"""set user as attending an event."""
event = get_object_or_404(Event, id=event_id)
attendance = Participant(
participant = request.user,
event = event,
is_attending = True
)
attendance.save()
return redirect('show_event')
в этой функции одно из полей, поле select multiply, в котором утверждение должно происходить только для тех людей, чей id события совпадает
def update_event(request, event_id):
event = Event.objects.get(pk=event_id)
participants = Participant.objects.filter(
event = event_id
)
Participant.objects.filter(attending__event=event_id, attending__is_attending=True)
if request.user.is_superuser:
form = EventFormAdmin(request.POST or None, instance=event)
else:
form = EventForm(request.POST or None, instance=event)
if form.is_valid():
form.save()
return redirect('all_events')
return render(request,
'events/update_event.html', {
'participants':participants,
'event': event,
'form':form
})
прошу помочь, буду очень благодарен за подсказку или возможное решение