Django模型定义顺序
举个例子,我有两个模型:Model1 和 Model2。Model1 里有一个字段是外键,指向 Model2。而 Model2 里有一个方法,可以返回所有与这个 Model2 实例相关联的 Model1 实例。
但是这个方法不管用,因为 Model2 是在 Model1 之后定义的,所以 Model1 对 Model2 一无所知。那该怎么解决这个问题呢?
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):
# ...