from django import forms from .models import Work from interface.models import Project from interface.forms import BaseForm class WorkCreateForm(forms.ModelForm, BaseForm): #uploads = forms.FileField(label="PDFs to upload", widget=forms.ClearableFileInput(attrs={'multiple': True}), required=False) class Meta: model = Work fields = ['name', 'code', 'running_time', 'notes'] class PlaylistAddForm(forms.Form): work = forms.ModelChoiceField(queryset=Work.objects.all()) def __init__(self, instance, *args, **kwargs): super(PlaylistAddForm, self).__init__(*args, **kwargs) existing = [ x[0] for x in instance.works.values_list('pk') ] qs = Work.objects.filter(ensemble_id=instance.ensemble_id).exclude(id__in=existing) self.fields['work'].queryset = qs self.instance = instance def save(self): self.instance.works.add(self.cleaned_data['work']) class ProjectSelectForm(forms.Form): project = forms.ModelChoiceField(queryset=Project.objects.all())