注意:
在实现 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 参数了,直接使用别名就可以了)