Django 'str' объект не вызывается при удалении объекта внешнего ключа - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть модель с внешним ключом для другой модели, и когда я пытаюсь удалить объект (в данном примере объект с id = 0, который существует).

Models.py

class MyModel(models.Model):
    example = models.ForeignKey(OtherModel,related_name='example',on_delete=models.SET_NULL    ,blank=True,null=True)

class OtherModel(models.Model):
    name = models.CharField(max_length=250)

ракушка

>>> import project
>>> from project import models
>>> project.models.OtherModel.objects.get(id=0).delete()
Traceback (most recent call last):
File "console", line 1, in "module"
File ".../lib/python3.5/site-packages/django/db/models/base.py"
, line 890, in delete collector.collect([self], keep_parents=keep_parents)
File ".../lib/python3.5/site-packages/django/db/models/deletion.py", line 222, in collect
field.remote_field.on_delete(self, field, sub_objs, self.using)
TypeError: 'str' object is not callable

1 Ответ

0 голосов
/ 08 ноября 2018

Вы пытаетесь создать отношение внешнего ключа с моделью, которая еще не определена.

example = models.ForeignKey(OtherModel,related_name='example',on_delete=models.SET_NULL ,blank=True,null=True)

Здесь под этой строкой определена другая модель, поэтому она не может определить, что такое OtherModel.

...