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>

 

 

表结构

 

posted @ 2018-05-02 11:17  FRESHMANS  阅读(201)  评论(0)    收藏  举报