如何区分django model中related_name与related_query_name的功能差异?

2026-05-28 17:383阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计297个文字,预计阅读时间需要2分钟。

如何区分django model中related_name与related_query_name的功能差异?

当然可以,请提供您想要修改的原文,我会帮您进行简写。

# ForeignKey的字段:

related_name 反向操作时,使用的字段名,用于代替原反向查询时的'表名小写_set'。

related_query_name :反向查询操作时,使用的连接前缀,用于替换'表名小写'。

作用于反向查询的时候

示例:


class Book(models.Model):
title = models.CharField(max_length=32,verbose_name='书名')
pulish = models.ForeignKey(to='Publish')

class Publish(models.Model):
name = models.CharField(max_length=32,verbose_name='出版社名称')



publish_obj = models.Publish.objects.filter(name='东方出版社').first()
publish_obj.book_set.all()

# related_name

class Book(models.Model):
title = models.CharField(max_length=32,verbose_name='书名')
pulish = models.ForeignKey(to='Publish', related_name= 'b')

class Publish(models.Model):
name = models.CharField(max_length=32,verbose_name='出版社名称')

publish_obj = models.Publish.objects.filter(name='东方出版社').first()
publish_obj.b.all()

# related_query_name

如何区分django model中related_name与related_query_name的功能差异?

class Book(models.Model):
title = models.CharField(max_length=32,verbose_name='书名')
pulish = models.ForeignKey(to='Publish', related_query_name= 'b')

class Publish(models.Model):
name = models.CharField(max_length=32,verbose_name='出版社名称')

publish_obj = models.Publish.objects.filter(name='东方出版社').first()
publish_obj.b_set.all()


本文共计297个文字,预计阅读时间需要2分钟。

如何区分django model中related_name与related_query_name的功能差异?

当然可以,请提供您想要修改的原文,我会帮您进行简写。

# ForeignKey的字段:

related_name 反向操作时,使用的字段名,用于代替原反向查询时的'表名小写_set'。

related_query_name :反向查询操作时,使用的连接前缀,用于替换'表名小写'。

作用于反向查询的时候

示例:


class Book(models.Model):
title = models.CharField(max_length=32,verbose_name='书名')
pulish = models.ForeignKey(to='Publish')

class Publish(models.Model):
name = models.CharField(max_length=32,verbose_name='出版社名称')



publish_obj = models.Publish.objects.filter(name='东方出版社').first()
publish_obj.book_set.all()

# related_name

class Book(models.Model):
title = models.CharField(max_length=32,verbose_name='书名')
pulish = models.ForeignKey(to='Publish', related_name= 'b')

class Publish(models.Model):
name = models.CharField(max_length=32,verbose_name='出版社名称')

publish_obj = models.Publish.objects.filter(name='东方出版社').first()
publish_obj.b.all()

# related_query_name

如何区分django model中related_name与related_query_name的功能差异?

class Book(models.Model):
title = models.CharField(max_length=32,verbose_name='书名')
pulish = models.ForeignKey(to='Publish', related_query_name= 'b')

class Publish(models.Model):
name = models.CharField(max_length=32,verbose_name='出版社名称')

publish_obj = models.Publish.objects.filter(name='东方出版社').first()
publish_obj.b_set.all()