Подсказали мне тут
интересный вариант, как это можно сделать через FakeModel
Страницу я такую прикрутил, теперь проблема - не отображается моя форма на этой странице
forms.pyclass ImportCCForm(Form):
text = CharField(widget=Textarea(), required=False)
file = FileField(
required=False,
label='Select a file',
help_text='max 1 megabyte',
)
admin.pyclass 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):
context = {'title': 'Import CC'}
if request.method == 'POST':
form = ImportCCForm(request.POST)
if form.is_valid():
# Do your magic with the completed form data.
# Let the user know that form was submitted.
messages.success(request, 'Congrats, form submitted!')
return HttpResponseRedirect('')
else:
messages.error(
request, 'Please correct the error below'
)
else:
form = ImportCCForm()
context['form'] = form
context = {
'test': 'test',
'opts': FakeModel._meta,
'change': True,
'is_popup': False,
'save_as': False,
'has_delete_permission': self.has_delete_permission,
'has_add_permission': self.has_add_permission,
'has_change_permission': self.has_change_permission,
'form': form,
}
return render(request, 'admin/change_form.html', context)
admin.site.register([FakeModel], ImportCCAdminForm)