首页 > 解决方案 > django如何将模型字段作为对象

问题描述

是否可以将模型的字段作为对象例如:我有这个模型

class User(models.Model):
    name = models.CharField(max_length=255) 
    email = models.TextField(blank=True)
    phone = models.TextField(blank=True)

现在我想将该字段用作我希望能够做到这一点的对象

def update_a_field(field):
    model_field = field
    query_set = User.objects.values(field.__name__).filter(field__isnull=False)

然后我可以这样调用我的函数

name = User._meta.get_field("name")
update_a_field(name)
email = User._meta.get_field("email") 
update_a_field(email)

标签: djangodjango-modelsdjango-rest-framework

解决方案


这应该有效:

def update_a_field(field):
    model_field = field

    filter_data = { "{}__isnull".format(field.__name__) : False}

    query_set = User.objects.values(field.__name__).filter(**filter_data)

推荐阅读