[步骤] Django 模型字段别名的实现

注意:

在实现 Django 模型类字段别名之前要先创建连接了 MariaDB 数据库或 MySQL 数据库的 Django 项目

正文:

步骤一: 在 users 应用数据库模板中修改 user 类

在 mysite/users/models.py 中将以下内容:

......
# Student table, subordinate table, not unique
class Student(models.Model):
    sno = models.AutoField(primary_key=True)
    sname = models.CharField(max_length=30)
    cno = models.ForeignKey(ourCla,on_delete=models.CASCADE)

    def __str__(self):
        return u'Student:%s'%self.sname

修改为:

......
# Student table, subordinate table, not unique
class Student(models.Model):
    sno = models.AutoField(primary_key=True)
    sname = models.CharField(max_length=30)
    cno = models.ForeignKey(ourCla,on_delete=models.CASCADE,related_name='sts')

    def __str__(self):
        return u'Student:%s'%self.sname

步骤二:测试 Django 模型类字段别名

2.1 配置 Django 环境

2.1.1 进入 Python 环境
(django_env) [root@python mysite]# python3
2.1.2 引入 os 模块和 django 模块
>>> import os,django
2.1.3 调用 mysite.settings 的配置
>>> os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
'mysite.settings'
2.1.4 让刚刚的调用生效
>>> django.setup()
2.1.5 调用 mysite 项目 user 应用 models 模块里的所有内容
>>> from user.models import *

2.2 测试 Django 模型类字段别名

>>> ourCla.objects.first().sts.all()
<QuerySet [<Student: Student:zhangsan>, <Student: Student:lisi>]>

(补充:这里的本来应该有 _set 参数,但是在 mysite.users.models.py 中设置了 related_name=’sts’ 后,就不再需要 _set 参数了,直接使用别名就可以了)