parejas-forms.py 918 B

1234567891011121314151617181920212223242526272829
  1. from django import forms
  2. from django.contrib.auth import get_user_model
  3. from .models import Reserva
  4. User = get_user_model()
  5. class ReservaForm(forms.ModelForm):
  6. acompanante = forms.ModelChoiceField(
  7. queryset=User.objects.none(),
  8. required=False,
  9. label="Acompañante"
  10. )
  11. class Meta:
  12. model = Reserva
  13. fields = ['acompanante']
  14. def __init__(self, *args, **kwargs):
  15. evento = kwargs.pop('evento', None)
  16. usuario = kwargs.pop('usuario', None)
  17. super().__init__(*args, **kwargs)
  18. # Solo permitir elegir acompañante si el evento es para parejas
  19. if evento and evento.para_parejas:
  20. # Todos los usuarios menos el propio
  21. self.fields['acompanante'].queryset = User.objects.exclude(id=usuario.id)
  22. else:
  23. # Si no es evento de parejas, ocultamos el campo
  24. self.fields.pop('acompanante')