zoukankan      html  css  js  c++  java
  • django python 修改外键从表的非主键字段值的方法

    如何修改从表Category表中的parent_project对应从表的need_create_file字段的值?

    class Category(models.Model):
        
        id = models.UUIDField(auto_created=True,default=uuid.uuid1,primary_key=True,editable=False,db_index=True,blank=False,unique=True,verbose_name='分类主键',help_text='分类主键')
        name = models.CharField(max_length=200,blank=False,verbose_name='组件名',help_text='组件名')
        desc = models.CharField(max_length=200,blank=True,verbose_name='组件描述',help_text='组件描述')
        category_type = models.IntegerField(choices=settings.CATEGORY_TYPE,verbose_name='组件级别',help_text='组件级别')
        status = models.IntegerField(default=0,verbose_name='组件状态',help_text='组件状态')
        create_time =  models.DateTimeField(verbose_name='创建时间',default=datetime.now,help_text='创建时间')
        create_user = models.ForeignKey(User,null=True,blank=True,related_name='category_create_user',help_text='创建用户',verbose_name='创建用户',on_delete=models.SET_NULL)
        attorn_time = models.DateTimeField(verbose_name='修改时间',default=datetime.now,help_text='修改时间')
        attorn_user = models.ForeignKey(User,null=True,blank=True,related_name='category_attorn_user',help_text='修改用户',verbose_name='修改用户',on_delete=models.SET_NULL)
        parent_category = models.ForeignKey('self',null=True,blank=True,default=None,db_index=True,help_text='所属模块',verbose_name='所属模块',related_name='child',on_delete=CASCADE)
        parent_project = models.ForeignKey(ProjectAuto,null=True,blank=True,db_index=True,default=None,help_text='归属项目',verbose_name='归属项目',to_field='auto_id')
    

      

    class ProjectAuto(models.Model):
        """
            脚本执行
        """
        auto_id = models.UUIDField(auto_created=True,default=uuid.uuid1,primary_key=True,db_index=True,blank=False,unique=True,verbose_name='项目主键',help_text='项目主键')
        project_id = models.ForeignKey(Project,verbose_name='案例项目编号',help_text='案例项目编号',blank=True,null=True,related_name='auto_cate')
        create_time = models.DateTimeField(verbose_name='创建时间',default=datetime.now,help_text='创建时间')
        create_user = models.ForeignKey(User, null=True, blank=True, verbose_name='创建用户',help_text='创建用户',related_name='create_user',on_delete=models.SET_NULL)
        attorn_user = models.ForeignKey(User, null=True, blank=True, verbose_name='授权用户',help_text='授权用户',related_name='attorn_user',on_delete=models.SET_NULL)
        attorn_time = models.DateTimeField(null=True, blank=True,verbose_name='授权时间',default=None,help_text='授权时间')
        project_name = models.CharField(unique=True,null=False, blank=False,max_length=200,verbose_name='项目名称',help_text='项目名称')
        project_path = models.CharField(default=settings.JOB_FILES_PATH,max_length=300,verbose_name='项目存放路径',help_text='项目存放路径')
        allow_other_edit = models.BooleanField(verbose_name='是否允许其它用户编辑',default=False,help_text='是否允许其它用户编辑')
        need_create_file = models.BooleanField(verbose_name='是否需要重新生成实体工程',default=True,help_text='是否需要重新生成实体工程')
        old_project = models.BooleanField(verbose_name='是否旧工程',default=False,help_text='是否旧工程')
        version = models.DecimalField(default=0.1,blank=True,decimal_places=1,max_digits=10,help_text='组件版本号',verbose_name='组件版本号')
        dept_project_name = models.CharField(null=True, blank=True,default=None,max_length=200,verbose_name='仓库项目名称',help_text='仓库项目名称')
        
    

      

    实现方法:

    cate_obj=Category.objects.filter(pk=category_id).first()
    category_ = category_obj.parent_category.parent_project
    category_.need_create_file=True
    category_.save()
    

      

  • 相关阅读:
    请使用迭代查找一个list中最小和最大值,并返回一个tuple
    利用切片操作,实现一个trim()函数,去除字符串首尾的空格,注意不要调用str的strip()方法
    软件测试中的43个功能测试点总结
    Linux下好用的简单实用命令
    小议堆栈
    使用mac的那些稀奇古怪的事
    探索TypeScript第一步之基础类型
    Markdown的基本使用方法
    React的生命周期
    React中的通讯组件
  • 原文地址:https://www.cnblogs.com/apple2016/p/14308006.html
Copyright © 2011-2022 走看看