related_name与verbose_name的区别

来源:6-1 自定义查询Q函数的使用

你仰慕的男神

2019-10-22 17:50:55

related_name与verbose_name的区别

写回答

1回答

时间,

2019-10-22

同学,你好。

related_name:Django中默认每个主表的对象都有一个是外键的属性,可以通过它来查询到所有属于主表的子表的信息。这个属性的名称默认是以子表的名称小写加上_set()来表示(例:表名为student,则此时为student_set),若设置了related_name,则可以使用related_name的值来代替表名

例:

class Person(models.Model):
    name = models.CharField(verbose_name='作者姓名', unique=True, max_length=10)
    age = models.IntegerField(verbose_name='作者年龄')
 
class Book(models.Model):
    person = models.ForeignKey(Person, on_delete=models.CASCADE)
    title = models.CharField(verbose_name='书籍名称', max_length=10)
    pubtime = models.DateField(verbose_name='出版时间')

查询person关联的所有书籍对象:

book = person.book_set.all()

若定义了related_name为person_books,则可以使用person.person_books.all()

2、verbose_name:表示给字段取一个可读的名字。若设置user字段的verbos_name为用户名,在模型中,可以很直观的看到表示是什么。

如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~

1

0 学习 · 3562 问题

查看课程