django如何获取模型字段作为对象

django如何获取模型字段作为对象,django,django-models,django-rest-framework,Django,Django Models,Django Rest Framework,是否可以将模型的场作为对象获取 例如: 我有这个型号 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 =

是否可以将模型的场作为对象获取 例如: 我有这个型号

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)
这应该起作用:

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)
这应该起作用:

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)

为什么不直接使用
User.objects.values('name')
User.objects.values('email')
?我需要设置字段dynamicallyOkay,我在
filter()
方法中没有看到
字段。那么@fantior Martin的答案应该行得通。为什么不直接使用
User.objects.values('name')
User.objects.values('email')
?我需要设置字段dynamicallyOkay,我在
filter()
方法中没有看到
字段
。那么@affairator Martin的回答应该有效。