来自外部服务的只读字段的Django管理设置值

来自外部服务的只读字段的Django管理设置值,django,django-models,django-forms,django-admin,Django,Django Models,Django Forms,Django Admin,我有一个模型,其中要存储的id由一个外部服务生成,即“job_id”。创建时,会将post请求发送到此外部服务,并将作业id发送回。仅当收到此作业id时,才会创建模型 在django admin中,此job_id设置为只读,因为它将由外部服务创建。我已在clean功能中向外部服务提出请求: def clean(self): if not self.cleaned_data.get('job_id'): response = requests.pos

我有一个模型,其中要存储的id由一个外部服务生成,即“job_id”。创建时,会将post请求发送到此外部服务,并将作业id发送回。仅当收到此作业id时,才会创建模型

在django admin中,此job_id设置为只读,因为它将由外部服务创建。我已在clean功能中向外部服务提出请求:

    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)})
但是,我似乎无法将作业id添加到已清理的数据中,我不断得到:

NOT NULL constraint failed: external_service.job_id
我也试过了

self.cleaned_data.setdefault('job_id', self.__extract_job(response))
但我似乎无法将作业id数据附加到字段