У меня есть настройка веб-сервиса с бэкэндом Django, и я пытаюсь удалить записи для моих объектов Field. Каждое поле назначается пользователю, и в этом поле проводится ряд оценок. Оценки связаны с полями через внешний ключ. После удаления объекта поля я хочу также удалить все оценки для этого Field
, но оставить пользователя.
Я поигрался с параметром on_deletion
, и если я установил его на CASCADE
, на странице администратора Django отобразятся все связанные с ней объекты оценки, если я попытаюсь удалить объект Field. Тем не менее, я все еще получаю следующую ошибку:
IntegrityError в / admin / dfto / field / update или удалить в таблице "field"
Нарушает ограничение внешнего ключа "valuation_field_uuid_fkey "для таблицы
"оценка" ДЕТАЛИ: Ключ
(uuid) = (f3a52c10-33be-42f9-995d-482025cea17b) по-прежнему упоминается из
стол "оценка".
Это мои модели для справки:
class Assessment(models.Model):
uuid = models.TextField(primary_key=True)
longitude = models.FloatField(blank=True, null=True)
latitude = models.FloatField(blank=True, null=True)
field_uuid = models.ForeignKey('Field', models.CASCADE, db_column='field_uuid',blank=True, null=True, related_name='assessments')
class Meta:
db_table = 'assessment'
class Field(models.Model):
uuid = models.TextField(primary_key=True)
name = models.CharField(max_length=50, blank=True, null=True)
country = models.CharField(max_length=50, blank=True, null=True)
user_email = models.ForeignKey('User', models.DO_NOTHING, db_column='user_email')
crop_uuid = models.ForeignKey(Crop, models.CASCADE, db_column='crop_uuid')
class Meta:
db_table = 'field'
Может кто-нибудь объяснить мне, почему я получаю эту ошибку и / или предоставить мне исправление?