Доступ к очищенным данным из админки django для обработки pdf

Здравствуйте, я довольно новичок в django, так что, пожалуйста, будьте добры, если что-то покажется вам новичком. В настоящее время я пытаюсь добавить кнопку печати в каждое существующее представление проекта в админке django, чтобы она зависела не от одной модели, которую я мог бы разрешить вручную для печати, а от каждой существующей модели, которая содержит внешние ключи к другим моделям и так далее. Для простоты я подумал, что лучше всего будет просто получить очищенные данные формы и обработать их для pdf.

Я уже добавил кнопку печати, путь url и так далее, и он создаст для меня pdf файл.

Что я не могу сделать, так это получить доступ к очищенным данным формы из моего класса BaseAdmins (расширяет ModelAdmin) следующим образом:

form = BaseForm(request.POST)
if form.is_valid():
   data = form.cleaned_data 

Он просто выдаст мне случайные ошибки, например у объекта нет атрибута 'is_bound'. Поэтому я думаю, что в целом я ошибаюсь с контекстом, в котором я пытаюсь получить очищенные данные из формы. Каждый учебник, который я нашел, просто показывает, как получить данные, но не полностью решает, содержит ли он внешние ключи и не в каком контексте.

Не могли бы вы прояснить для меня, где имеет смысл передавать какие-либо данные формы, возможно, как данные сессии или тело сообщения в представление печати, где я могу их обработать.

Большое спасибо за прочтение, надеюсь, я смог описать свою проблему, не стесняйтесь спрашивать.

Edit Это BaseForm, я изменил имена переменных по внутренним причинам:

class BaseForm(ModelForm):

    def clean_custom(self):
        another_model = self.cleaned_data.get('AnotherModel')
        custom_models = self.cleaned_data.get('CustomModel')
        custom_models_allowed = CustomModel.objects.filter(AnotherModel=another_model)
        custom_models_was_list = True

        if not custom_models:
            return

        if not isinstance(custom_models, Iterable):
            custom_models_was_list = False
            custom_models = [custom_models]

        for custom_model in custom_models:
            if another_model and custom_model not in custom_models_allowed:
                custom_models_allowed = [custom_model.titel for custom_model in custom_models_allowed]              
                custom_models_allowed = ', '.join(custom_models_allowed)
                raise ValidationError('{} is not part of {}. For selection: {}'.format(custom_model, another_model, custom_models_allowed))

        if custom_models_was_list:
            return custom_models
        else:
            return custom_models[0]

Это не стандартный формат вопроса, вы должны предоставить нам код для части кода, где происходит ошибка, (т.е. файл base_admin.py), но то, что вы предоставили, это только 3 строки из него.

Но пока я вижу, что вы не проверяете, имеет ли запрос тип post или нет. Обратите внимание на условие if в начале метода

def edit(request):

if request.method == 'POST': 

    # create a form instance and populate it with data from the request:
    form = PurposeForm(request.POST)
    # check whether it's valid:
    
    if form.is_valid():
       for key, value in form.cleaned_data.items():
            # etc
Вернуться на верх