예제 #1
0
class ProjectForm(forms.ModelForm):

    helper = FormHelper()
    helper.add_input(Submit('submit', 'Submit'))
    helper.form_class = 'form-horizontal'

    tags =  TagField()

    class Meta:
        model = Project
        exclude = ("audios", )
예제 #2
0
class UserProfileForm(ModelForm):
    tags = TagField(
        label=_('hashtags').capitalize(),
        required=False,
        help_text=_(
            "put tags helps you to contact users who share musical tastes"))

    helper = FormHelper()
    helper.add_input(Submit('submit', 'Submit'))

    class Meta:
        model = UserProfile
        fields = [
            'realname',
            'about',
            'website',
            'location',
            "tags",
        ]
예제 #3
0
파일: forms.py 프로젝트: MarsCrop/redpanal
class AudioForm(forms.ModelForm):

    tags = TagField(required=False)
    project = forms.ModelChoiceField(Project.objects.all(), required=False)
    audio = forms.FileField(label=_("Audio"),
                            help_text=_("Allowed extensions: %s") %
                            ", ".join(AUDIO_EXTENSIONS))

    helper = FormHelper()
    helper.form_class = 'form-horizontal'
    helper.add_input(Submit('submit', 'Submit'))

    class Meta:
        model = Audio
        widgets = {
            'license': forms.RadioSelect,
        }
        fields = '__all__'

    def __init__(self, data=None, *args, **kwargs):
        user = kwargs.pop('user')
        super(AudioForm, self).__init__(data, *args, **kwargs)
        self.instance.user = user
        initial_project = self.instance.project_set.all()[0] if self.instance.pk and \
                         self.instance.project_set.all() else None
        self.fields['project'] = forms.ModelChoiceField(
            queryset=Project.objects.filter(user=user),
            initial=initial_project,
            required=False)

    def clean_audio(self):
        f = self.cleaned_data.get('audio', False)
        if not f:
            raise ValidationError(_("Couldn't read uploaded file"))
        if not get_file_extension(f.name) in AUDIO_EXTENSIONS:
            raise ValidationError(_("Invalid audio file extension"))
        return f
예제 #4
0
class SnapshotAdminForm(forms.ModelForm):
    tags = TagField(required=False)

    class Meta:
        model = Snapshot
        fields = "__all__"

    def save(self, commit=True):
        # Based on: https://stackoverflow.com/a/49933068/3509554

        # Get the unsave instance
        instance = forms.ModelForm.save(self, False)
        tags = self.cleaned_data.pop("tags")

        #update save_m2m
        def new_save_m2m():
            instance.save_tags(tags)

        # Do we need to save all changes now?
        self.save_m2m = new_save_m2m
        if commit:
            instance.save()

        return instance