django 基础(十二)之表内字段参数及表的关联

例:userinfo 类

表的关联


另:row.user_group_id 与row.user_group.uid 获取的值一样,user_group_id 这个字段为userinfo表在创建的时候生成的实际的字段,查询UserGroup表的其他字段的值,就通过row.user_group.{catpion/uid/..}这样去获取就行了,这就是联表

django一对多用户组选择及用户添加删除
urls.py

models.py
class UserGroup(models.Model): uid = models.AutoField(primary_key=True) caption = models.CharField(max_length=32,unique=True) ctime = models.DateTimeField(auto_now_add=True,null=True) uptime = models.DateTimeField(auto_now=True,null=True) class UserInfo(models.Model): ##,以下会自动创建表,字段分别为用户名,字符串类型,指定长度 username = models.CharField(max_length=32) password = models.CharField(max_length=64) email = models.CharField(max_length=32,default='aaaaa') test = models.CharField(max_length=32,default='bbbb') #ip = models.GenericIPAddressField(max_length=32) ###默认情况下会自动创建一列,id,并且为自增列,为主键 user_group = models.ForeignKey("UserGroup",to_field="uid") user_type_choice = ( (1,'超级用户'), (2,'普通用户'), (3,'注销用户'), ) user_type_id = models.IntegerField(choices=user_type_choice,default=1)

视图函数views.py

userinfo.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .menu{ display: block; padding:5px; } </style> </head> <body style="margin: 0;"> <div style="height:48px;background-color: black;color: red;"> </div> <div> <!--左边菜单--> <div style="position: absolute;top:48px;left: 0;bottom: 0;width: 200px;background-color: red"> <a class="menu" href="/cmdb/userinfo">用户管理</a> <a class="menu" href="/cmdb/usergroup_info">用户组管理</a> </div> </div> <div> <!--右边菜单--> <div style="position: absolute;top:48px;left:210px;right: 0;bottom: 0;overflow: auto;"> <h1>用户列表</h1> <ul> {% for row in userlist %} <li> <a href="/cmdb/userdetail-{{ row.id }}">{{ row.username }}</a>| <a href="/cmdb/useredit-{{ row.id }}">{{ row.user_group.caption }}</a>| <a href="/cmdb/userdel-{{ row.id }}">删除</a>| <a href="/cmdb/useredit-{{ row.id }}">编辑</a> </li> {% endfor %} </ul> <h2>添加用户</h2> <form action="/cmdb/userinfo/" method="POST"> <input type="text" name="username"/> <input type="password" name="password"/> <select name="group_id"> {% for item in grouplist %} <option value={{ item.uid }}>{{ item.caption }}</option> {% endfor %} </select> <input type="submit" value="添加"/> </form> </div> </div> </body> </html>

表结构


浙公网安备 33010602011771号