gpt4 book ai didi

python - 使用Django的抽象类来进行简单的代码复用是否合适?

转载 作者:太空宇宙 更新时间:2023-11-03 15:41:11 30 4
gpt4 key购买 nike

我正在学习 Django 并编写我的第一个半复杂模型。我的许多表格都是根据类似的 View 样式制作的,因此许多对象都有名称、描述和图像。例如:

class Ingredient(models.Model):
# Standard to many classes
name = models.CharField(max_length=50)
description = models.TextField()
image_url = models.URLField(max_length=200)

# Unique to this class
foodgroup = ..... etc.

由于名称、描述和 url 对许多对象来说都是通用的(否则完全不同),我正在考虑定义一个基类,每个对象都可以继承:

class BaseObjectWithImage(models.Model):
# Standard to many classes
name = models.CharField(max_length=50)
description = models.TextField()
image_url = models.URLField(max_length=200)

class Meta:
abstract = True

class Ingredient(BaseObjectWithImage):
# Unique to this class
foodgroup = ..... etc.

我的问题(可能更接近于简单的 OOP 最佳实践问题)是,这是否是对 Django 抽象类的愚蠢使用,或者是否值得删除 3xN 行代码并允许我将大多数模型类视为泛型类型。

最佳答案

抽象类的使用并不是愚蠢的。 Django 和 python 都是相对多面性的,因为它们允许您使用许多不同的编程风格(无论哪种最适合您)。只需确保您做出一致且有意识的决定,即模型是否创建单独的表,每个表都有自己的重复列副本,或者它们是否每个都包含公共(public)基表的外键。

关于python - 使用Django的抽象类来进行简单的代码复用是否合适?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42102810/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com