Как использовать queryset.upgrade в действии Django Admin?

У меня есть действие Django Admin, которое обновляет значения (включая foreignkeys) в модели. Код следующий:

def staff_reset(self, request, queryset):
    updated=queryset.update(regstatus='registered', medicalform__medform_status='required', 
        staffmonitoringform__monitoring_status = 'required', staffreleaseform__release_status ='required',
        staffethics__ethics_status = 'required', staffethics__i_agree=False)
    self.message_user(request, ngettext(
        '%d staff registration was successfully reset.',
        '%d staff registrations were successfully reset.',
        updated,
        ) % updated, messages.SUCCESS)
staff_reset.short_description="Reset Staff Registrations"

Но я получаю сообщение об ошибке "Order has no field named 'medicalform__medform_status'". Есть идеи, могу ли я использовать queryset.update() с foreignkeys? Заранее спасибо.

В этом случае каждый внешний ключ должен быть обновлен отдельно следующим образом:

    updated = queryset.update(regstatus='registered')

    MedicalForm.objects.filter(
        pk__in=queryset.values('medicalform')
    ).update(medform_status='required')

    StaffMonitoringForm.objects.filter(
        pk__in=queryset.values('staffmonitoringform')
    ).update(monitoring_status='required')

    StaffReleaseForm.objects.filter(
        pk__in=queryset.values('staffreleaseform')
    ).update(release_status='required')

    StaffEthicsForm.objects.filter(
        pk__in=queryset.values('staffethics')
    ).update(ethics_status='required', i_agree=False)
Вернуться на верх