Reputation: 129
Is it possible to get model's field as object For example: I have this model
class User(models.Model):
name = models.CharField(max_length=255)
email = models.TextField(blank=True)
phone = models.TextField(blank=True)
now I want to use the field as object I want to be able to do this
def update_a_field(field):
model_field = field
query_set = User.objects.values(field.__name__).filter(field__isnull=False)
then I can call my function like this
name = User._meta.get_field("name")
update_a_field(name)
email = User._meta.get_field("email")
update_a_field(email)
Upvotes: 0
Views: 75
Reputation: 3091
This should work:
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)
Upvotes: 2