Skip to content

forms

django_spire.knowledge.entry.forms

EntryForm

Bases: ModelForm

Meta

model = Entry class-attribute instance-attribute
fields = ['name'] class-attribute instance-attribute

EntryFilesForm

Bases: Form

import_files = forms.FileField() class-attribute instance-attribute

collection_pk = forms.IntegerField() class-attribute instance-attribute

save_model_obj

Source code in django_spire/knowledge/entry/forms.py
@Glue.attr(required_access=Glue.Access.CHANGE)
def save_model_obj(self, request: HttpRequest) -> GlueResponse:
    files = self.files.getlist('import_files.value')

    if not files:
        return GlueResponse(messages=[GlueMessage.error('No files selected.')])

    collection_pk = int(self.data.get('collection_pk') or 0)
    collection = get_object_or_null_obj(Collection, pk=collection_pk)

    file_objects = FileFactory(app_name='knowledge').create_many(files)

    Entry.services.factory.create_from_files(
        author=request.user,
        collection=collection,
        files=file_objects
    )

    return GlueResponse(
        result={
            'redirect': {
                'url': reverse(
                    'django_spire:knowledge:entry:template:file_list',
                    kwargs={'collection_pk': collection_pk},
                )
            }
        }
    )