Django模型定义顺序

7 投票
3 回答
2314 浏览
提问于 2025-04-17 08:39

举个例子,我有两个模型:Model1Model2Model1 里有一个字段是外键,指向 Model2。而 Model2 里有一个方法,可以返回所有与这个 Model2 实例相关联的 Model1 实例。

但是这个方法不管用,因为 Model2 是在 Model1 之后定义的,所以 Model1Model2 一无所知。那该怎么解决这个问题呢?

3 个回答

1

你真的需要那个返回所有与外键相关的model1实例的方法吗?其实你可以直接用model2中的相关字段管理器来做到这一点。比如说,使用Model2.field_in_model1_set.all()就可以了。

2

在编程中,有时候我们需要处理一些数据,这些数据可能是从用户那里输入的,或者是从其他地方获取的。为了让程序能够理解这些数据,我们通常会进行一些转换和处理。

比如说,如果你有一个数字的字符串(像“123”),但你想把它当作一个真正的数字来使用,那么你就需要把这个字符串转换成数字。这种转换在编程中是很常见的。

另外,有时候我们需要把一些复杂的数据结构,比如列表或字典,转化为更简单的格式,方便我们进行操作或展示。这种处理可以帮助我们更好地管理和使用数据。

总之,数据的处理和转换是编程中非常重要的一部分,掌握这些技巧可以让你的程序更加灵活和强大。

class Model1(models.Model):
    model2 = models.ForeignKey('Model2')


class Model2(models.Model):
    """Another model"""
13

看看Django的文档吧。你可以用一个字符串来指定模型,这样它会在稍后进行评估:https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.ForeignKey

class Car(models.Model):
    manufacturer = models.ForeignKey('Manufacturer')
    # ...

class Manufacturer(models.Model):
    # ...

撰写回答