django - 如果在其他模型中继承,则 Django 中父模型中的相关名称
问题描述
我创建了一个可以在其他模型中继承的模型
父模型
class Edit_Lane_Info(models.Model):
lane_info = models.OneToOneField(Edit_Lane, related_name='$(class)s', on_delete=models.CASCADE)
def delete(self, *args, **kwargs):
super().delete(*args, **kwargs)
if self.lane_info:
self.lane_info.delete()
class Meta:
abstract = True
class Status (Edit_Lane_Info, models.Model): # parent class inherited
......
class Anpr(Edit_Lane_Info, models.Model): # parent class inherited
....
class Sensor_Details(Edit_Lane_Info, models.Model): # parent class inherited
.............
现在我的问题是如何在 Edit_Lane_Info(parent model) 中唯一地传递related_name。我用过related_name='$(class)s
,但不工作
Edit_Lane 模型
class Edit_Lane(models.Model):
Anpr_Ip = models.GenericIPAddressField(default="NA")
解决方案
您的related_name
包含$
而不是%
要解决此问题,当您使用 related_name 时,名称的一部分应包含%(app_label)s
or%(class)s
编辑:
对于继承,您不需要从models.Model
以下每个类中继承: Status
, Anpr
,Sensor_Details
因为Edit_Lane_Info
已经继承自models.Model
你应该这样
Edit_Lane_Info(models.Model)
class Status (Edit_Lane_Info):
class Anpr (Edit_Lane_Info):
class Sensor_Details (Edit_Lane_Info):
推荐阅读
- php - 在没有 Composer 的情况下添加 PHPMailer
- react-native - 从反应原生发布到/上传
- processing - 处理:自上而下的射击游戏中的多个子弹
- python - 使用 python-rq 调度另一个 redis 作业的 redis 作业
- linux - 如何正确链接 Dcmtk 与 Qt for Linux?
- c - 带有 MinGW C 的 Windows QueryPerformanceCounter
- javascript - 同一画布上的背景和前景不透明度不同?
- django - 用鼠标移动对象
- swift - 如何在不拉伸原始图像的情况下扩展 CIImage 的空间(边界)?
- javascript - 如何读取 1 个标志位并同时获取整数