代码之家  ›  专栏  ›  技术社区  ›  limscoder

Django外国模型

  •  1
  • limscoder  · 技术社区  · 16 年前

    如何在不接触数据库和加载相关对象的情况下获取/设置模型对象上的外键字段?

    2 回复  |  直到 16 年前
        1
  •  1
  •   Botond Béres    16 年前

    Django实际上会在外键字段名后面附加一个'u id',并且使用'field_name_id',您可以直接获取或设置整数id值:

    class MyModel(models.Model):
        field = models.ForeignKey(MyOtherModel)
    
    mymodel_instance = MyModel.objects.get(pk=1)
    # queries database for related object and the result is a MyOtherModel instance
    print mymodel_instance.field
    # result is simply the integer id value, does not do any query
    print mymodel_instance.field_id
    
        2
  •  0
  •   Matthew Schinckel    16 年前

    您可以使用.select_related()作为初始查询的一部分加载相关模型。然后,可以在不命中数据库的情况下获取/设置属性。

    记住,要保存数据,您需要点击数据库。

    有关如何使用它的详细信息,请尝试 documentation .