每当我尝试删除AbstractThing
中的DeleteView
类对象时(例如在管理区域中),我都会收到以下错误:
AttributeError: 'OneToOneField' object has no attribute 'model'
相关模型和观点:
class AbstractThing(models.Model):
class Meta:
abstract = True
color = models.CharField(max_length=6)
class ConcreteThing(AbstractThing):
user = models.ForeignKey('User', on_delete=models.CASCADE, related_name='concrete_things')
class ConcreteThingDeleteView(DeleteView):
model = ConcreteThing
success_url = "…"
from django.contrib.auth.base_user import AbstractBaseUser
class User(AbstractBaseUser):
(…)
我不知道发生了什么,因为错误消息根本不具体。任何帮助表示赞赏。
答案 0 :(得分:0)
您使用不正确的格式来引用模型以创建外键。如果要在同一个python文件的顶部导入模型,它应该是'appname.ModelName'
(使用引号)或只是普通ModelName
。
在您的情况下,您可能需要User
而不是'User'
。