У меня есть модель, в которой идентификатор для хранения генерируется внешней службой, 'job_id'. При создании запрос на отправку отправляется на эту внешнюю службу, а job_id отправляется обратно. Модель создается только в том случае, если получен этот job_id.
В администраторе django этот job_id установлен только для чтения, так как он будет создан внешней службой. Я разместил запрос к внешней службе в функции очистки:
def clean(self):
if not self.cleaned_data.get('job_id'):
response = requests.post(external_service,
params=params, data=data)
if response.status_code != 200:
raise ValidationError(_("external_service unavailable. Please try again"))
self.cleaned_data.update({'job_id': self.__extract_job(response)})
Однако я не могу добавить job_id к очищенным данным, я продолжаю получать:
NOT NULL constraint failed: external_service.job_id
I также пытался
self.cleaned_data.setdefault('job_id', self.__extract_job(response))
, но я не могу прикрепить данные job_id к полю.