Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python-django-在每个模型字段上使用标志_Python_Django - Fatal编程技术网

python-django-在每个模型字段上使用标志

python-django-在每个模型字段上使用标志,python,django,Python,Django,我想为我的应用程序构建一个简单的调节系统。我的应用程序模型中有这样一个类: #models.py class TableName(models.Model): is_qualified = False title = models.CharField(max_length=300, blank=False) description = models.TextField(max_length=500, default="DEFAULT VALUE")

我想为我的应用程序构建一个简单的调节系统。我的应用程序模型中有这样一个类:

#models.py
class TableName(models.Model):
        is_qualified = False
        title = models.CharField(max_length=300, blank=False)
        description = models.TextField(max_length=500, default="DEFAULT VALUE")  
        video = models.FileField(upload_to='somepath')
        picture_thumbnail = models.ImageField(upload_to='somepath')
def update_qualified(obj_instance):
    if all(value for key, value in obj_instance.data.items()):
        obj_instance.is_qualified = True
    else:
        obj_instance.is_qualified = False
    obj_instance.save()
我有3个问题:

  • 如何将
    is_qualified
    添加到模型中的每个字段,并将其默认设置为
    False
  • 我如何首先编写一个查看方法来检查管理员是否选中了一个对象(例如标题或描述),并使用其复选框将字段的
    是否符合条件
    值更改为
    True
  • 如何为管理区域中的每个对象添加复选框以使用该视图方法

  • 非常感谢。

    您需要将
    设置为合格的
    实际字段-布尔字段是合适的-并将其默认为False

    is_qualified = models.BooleanField(default=False)
    

    您还可以查看文档

    您需要将
    设置为合格的
    实际字段-布尔字段是合适的-并将其默认为False

    is_qualified = models.BooleanField(default=False)
    

    您还可以查看文档

    Hmm,为每个字段添加is\u将有点太多

    如果您使用PostgreSQL,我会考虑使用,您可以动态地添加键值字段。 使用这个包,您可以将字段名作为键,将True/False作为值

    然后,当尝试验证对象是否“合格”时,您只需做出如下操作:

    #models.py
    class TableName(models.Model):
            is_qualified = False
            title = models.CharField(max_length=300, blank=False)
            description = models.TextField(max_length=500, default="DEFAULT VALUE")  
            video = models.FileField(upload_to='somepath')
            picture_thumbnail = models.ImageField(upload_to='somepath')
    
    def update_qualified(obj_instance):
        if all(value for key, value in obj_instance.data.items()):
            obj_instance.is_qualified = True
        else:
            obj_instance.is_qualified = False
        obj_instance.save()
    
    is\u valid=all([value for key,value in your\hstore\u field.items()])


    编辑

    然后,您可以使用如下自定义函数:

    #models.py
    class TableName(models.Model):
            is_qualified = False
            title = models.CharField(max_length=300, blank=False)
            description = models.TextField(max_length=500, default="DEFAULT VALUE")  
            video = models.FileField(upload_to='somepath')
            picture_thumbnail = models.ImageField(upload_to='somepath')
    
    def update_qualified(obj_instance):
        if all(value for key, value in obj_instance.data.items()):
            obj_instance.is_qualified = True
        else:
            obj_instance.is_qualified = False
        obj_instance.save()
    

    嗯,为每个字段添加is_将有点太多

    如果您使用PostgreSQL,我会考虑使用,您可以动态地添加键值字段。 使用这个包,您可以将字段名作为键,将True/False作为值

    然后,当尝试验证对象是否“合格”时,您只需做出如下操作:

    #models.py
    class TableName(models.Model):
            is_qualified = False
            title = models.CharField(max_length=300, blank=False)
            description = models.TextField(max_length=500, default="DEFAULT VALUE")  
            video = models.FileField(upload_to='somepath')
            picture_thumbnail = models.ImageField(upload_to='somepath')
    
    def update_qualified(obj_instance):
        if all(value for key, value in obj_instance.data.items()):
            obj_instance.is_qualified = True
        else:
            obj_instance.is_qualified = False
        obj_instance.save()
    
    is\u valid=all([value for key,value in your\hstore\u field.items()])


    编辑

    然后,您可以使用如下自定义函数:

    #models.py
    class TableName(models.Model):
            is_qualified = False
            title = models.CharField(max_length=300, blank=False)
            description = models.TextField(max_length=500, default="DEFAULT VALUE")  
            video = models.FileField(upload_to='somepath')
            picture_thumbnail = models.ImageField(upload_to='somepath')
    
    def update_qualified(obj_instance):
        if all(value for key, value in obj_instance.data.items()):
            obj_instance.is_qualified = True
        else:
            obj_instance.is_qualified = False
        obj_instance.save()
    

    这很好。但我想在这门课的每一个领域都这样。这不是针对整个班级(整个数据库记录)的吗?请设想管理员将被允许限定他想要的每个对象。例如,他将接受视频、图片和标题,但他不接受描述。添加单个字段
    title\u符合条件
    description\u符合条件
    ,为您的班级中的每个字段添加Daniels示例非常感谢。我想它会起作用的。你能帮我检查一下复选框吗?这很好。但我想在这门课的每一个领域都这样。这不是针对整个班级(整个数据库记录)的吗?请设想管理员将被允许限定他想要的每个对象。例如,他将接受视频、图片和标题,但他不接受描述。添加单个字段
    title\u符合条件
    description\u符合条件
    ,为您的班级中的每个字段添加Daniels示例非常感谢。我想它会起作用的。你能帮我检查一下复选框吗?我在本地使用sqlite3开发环境,但我将使用postgresql进行部署。那么我可以使用在我的视图方法中有效吗?或者在其他地方?是的,比方说,您已经在hstore字段中用真/假值验证了所有字段。您可以始终检查它(这可能会耗费大量对象的时间),或者添加新字段,这是“主要”验证指示器。我已经在回答中更新了我的代码,请检查我是如何完成的。我正在使用sqlite3进行本地开发环境,但我将使用postgresql进行部署。那么我可以使用在我的视图方法中有效吗?或者在其他地方?是的,比方说,您已经在hstore字段中用真/假值验证了所有字段。您可以始终检查它(这可能会耗费大量对象的时间),或者添加新字段,这是“主要”验证指示器。我已经在回答中更新了我的代码,请检查我是如何完成的。