开发者

Django ForeignModels

How do I get/set foreign key fields on a model object without t开发者_运维百科ouching the database and loading the related object?


Django actually appends an '_id' to ForeignKey field names and with 'field_name_id' you can get or set the integer id value directly:

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


You can use .select_related() to load up related models as part of the initial query. You can then get/set properties without a database hit.

Remember that to save stuff, you will need to hit the database.

For details on how to use it, try the documentation.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜