Как использовать 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)