Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Не аплоадит файл в кастомной странице админки. [RSS Feed]

#1 Май 30, 2016 16:56:43

mirak
Зарегистрирован: 2016-02-24
Сообщения: 34
Репутация: +  0  -
Профиль   Отправить e-mail  

Не аплоадит файл в кастомной странице админки.

Давеча я пилил кастомную страницу в админке, не привязанную к конкретной модели. Страница работает, форма выводится. Но вот не работает аплоад файла через эту форму в админке, эта же форма встроенная в FormView все делает как нужно.

**form.py**
    class ImportCCForm(Form):
        text = CharField(widget=Textarea(), required=False)
        file = FileField(
            required=True,
            label='Select a file',
            help_text='max 1 megabyte',
         def save(self):
            # doing my save data logic here
admin.py
    class FakeModel(object):
        class _meta:
            app_label = 'shop'  # This is the app that the form will exist under
            model_name = 'import-cc'  # This is what will be used in the link url
            verbose_name_plural = 'Import CC'  # This is the name used in the link text
            object_name = 'ObjectName'
    
            swapped = False
            abstract = False
    class ImportCCAdminForm(admin.ModelAdmin):
        """
        This is a funky way to register a regular view with the Django Admin.
        """
    
        def has_add_permission(*args, **kwargs):
            return False
    
        def has_change_permission(*args, **kwargs):
            return True
    
        def has_delete_permission(*args, **kwargs):
            return False
    
        def changelist_view(self, request):
            if request.method == 'POST':
                print(request.read())
                form = ImportCCForm(request.POST or None)
                if form.is_valid():
                    # Do your magic with the completed form data.
                    # Let the user know that form was submitted.
                    print(form.cleaned_data)
                    # form.save()
    
                    messages.success(request, 'Congrats, form submitted!')
                    return HttpResponseRedirect('')
                else:
                    messages.error(
                        request, 'Please correct the error below'
                    )
            else:
                form = ImportCCForm()
    
            context = {
                'title': 'Import CC',
                'opts': FakeModel._meta,
                'form': form,
            }
            return render(request, 'admin/cc_add_admin.html', context)
template
    <form action="." method="post" enctype="multipart/form-data">
        {% csrf_token %}
        {{ form|crispy }}
        <input type="submit" value="Submit"/>
    </form>

Вопрос, почему? Реквест приходит пустой.

Отредактировано mirak (Май 30, 2016 16:58:54)

Офлайн

#2 Июнь 9, 2016 23:27:30

inoks
От: Russia
Зарегистрирован: 2012-12-11
Сообщения: 343
Репутация: +  35  -
Профиль   Адрес электронной почты  

Не аплоадит файл в кастомной странице админки.

request.FILES
в форму нужо добавить

Офлайн

#3 Июнь 9, 2016 23:45:54

mirak
Зарегистрирован: 2016-02-24
Сообщения: 34
Репутация: +  0  -
Профиль   Отправить e-mail  

Не аплоадит файл в кастомной странице админки.

inoks
Да, теперь я уже и сам мог бы ответить на этот вопрос. Спасибо все же. Форум скорее мертв, чем жив.

Офлайн

  • Начало
  • » Django
  • » Не аплоадит файл в кастомной странице админки.[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version