也就是说,它只是可以应用在项目中,但是隶属于用户,该用户的所有旗下项目都可以使用。它的本身属性字段中也只有用户id,并没有项目id,。
因为在项目中才需要对其设置,选用等,所以我们前端的维护,依然放在项目内。
我们需要新建第四个子页面:全局变量
所以首先在我们的P_apis.html,P_cases.html,P_project_set.html 三个页面的顶部菜单,分别都加入 全局变量 超链接。
我给它起名为/global_data/项目id然后我们去新建一个html,作为这个页面:
新建后,我们复制一个nav顶部菜单进来。并注意设置好选中class="active"给自己。
接下来,我们去urls.py中设置好
然后去views.py中写好进入的函数:
重启服务后,我们现在点击进入全局变量,应该就不报错了:
然后就是在child_json中,设置好数据了:
不过我们目前还没有去建造变量的表,所以我们接下来去models.py中进行建造表:
class DB_global_data(models.Model):
name = models.CharField(max_length=20,null=True) #名字
user_id = models.CharField(max_length=10,null=True) #所属用户id
data = models.TextField(null=True) #存储的所有数据
def __str__(self):
return self.name
然后我们执行俩句同步命令:
再去admin.py中注册:
现在我们在后台也可以看到了:
这里我们要先手动设置一条demo数据,用来方便我们的前端开发任务:
我的用户id是3,因为是手动创建,所以要先看下自己id哦,在后台的用户表可以点击进入自己的用户查看id。
然后我们去views.py中的child_json()中设置好数据:
这里我们要返回俩个数据:
- 项目本身:我们要增删改查当前项目保存的变量套选用设置
- 项目所属用户的旗下全部变量套:注意,这里我返回的并不是登陆用户的变量套,而是项目的变量套。正常来说,用户进入的若是自己的项目,那么这里返回的一致。但是如果用户访问的是其他人的项目,那么此时若返回的是用户的变量套,那么项目和变量套 就不是同一个人的,也没办法匹配。 没有实际意义。而且后期我们开发出权限系统后,会有严格的限制,是可以查看,还是可以编辑。
这里我们要趁早 解决一个之前遗留的坑 才好继续:
我们之前项目的属性中,并没有用户id,现在要加上。因为公司的内部用户系统的用户名一般是固定且唯一,所以我们早期使用了用户名作为标记所属。但是为了方便后续,且更加严谨,这里要新增用户id, 那么我们之前的旧项目,趁着大家还没有正式广泛使用,最好手动在后台给加上用户id。
然后执行俩句同步命令:
在后台 找到我们的项目,手动给加上用户id,用户id从这里查:
顶部的url中的 3就是这个用户的id了:
然后我们再给我们之前的旧项目都手动写上对应的用户id并保存。
然后去修改我们views.py中 新建项目的函数:add_project,给它增加用户id的存储,这样我们新老项目都修改好了。这种情况大家也算是涨了一次经验了。
修改好之前的坑之后,我们再回到child_json函数中,继续写刚刚的全局变量代码:
如图,可以正常拿到数据了。
复制版本如下:
if eid == 'P_global_data.html': from django.contrib.auth.models import User project = DB_project.objects.filter(id=oid)[0] global_data = DB_global_data.objects.filter(user_id=project.user_id) res = {"project":project,"global_data":global_data