Как выполнять дополнительные функции из класса UpdateViews

для редактирования таблицы я использую UpdateViews , и передаю туда тот же шаблон, что и в функции создания:

class CampaignEditor(UpdateView):
    model = Campaigns
    template_name = 'mailsinfo/add_campaign.html'
    form_class = CampaignsForm

    def get_context_data(self, **kwards):
        context = super().get_context_data(**kwards)
        data = list(Emails.objects.values()) # you may want to further filter for update purposes
        data = MailsTableWithoutPass(data)
        userID = self.object.user_guid
        all_mails = CampaignEmail.objects.values_list ('id','campaigne_guid', 'email_guid')
        context['data'] =  editCampaignDataWork(data, userID, all_mails)
        return context
def add_campaign(request):
    if request.method == 'POST':
        addCampaignDataToDB(request.POST)
    data = list(Emails.objects.values())
    data = MailsTableWithoutPass(data)
    form = CampaignsForm()
    data_ = {
        'form': form,
        'data': data
    }
    return render(request, 'mailsinfo/add_campaign.html', data_)

Сохранение главной формы в порядке, но кроме этого моя функция create имеет лишние шаги, для еще одной базы данных, все это делается в функции - addCampaignDataToDB :

def addCampaignDataToDB(req):
    formCampaigns = CampaignsForm(req)
    IDs = req['IDs']
    if IDs != '':
        IDs_list = IDs.split(',')
        user_guid = req['user_guid'][0]
        for i in IDs_list:
            CampaignEmail.objects.create(email_guid=int(i), campaigne_guid=int(user_guid))

    if formCampaigns.is_valid():
        formCampaigns.save()

Я столкнулся с проблемой, что при вызове класса для редактирования из функции addCampaignDataToDB выполняется только фрагмент:

    if formCampaigns.is_valid():
        formCampaigns.save()

Но мне нужно, чтобы вся эта функция работала

В результате получается, что часть действий не выполняется и это сильно ломает мою программу, может кто-то знает с чем это связано и как это можно исправить? Буду очень благодарен за советы, а также прошу прощения, если вам что-то непонятно

Вернуться на верх