I have a custom property on my Django model that returns the full name of a Person:
class Person(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
def _get_full_name(self):
return "%s %s" % (self.first_name, self.last_name)
full_name = property(_get_full_name)
When I create a query, I'd like to reference that property. For example:
people = Person.objects.all().values_list('full_name')
Unfortunately, Django yields the following FieldError:
FieldError: Cannot resolve keyword 'full_name' into field
Long story short, is it possible to access a custom property via the values_list() method? If not, does anyone have any suggestions on how to best remedy this problem?
A QuerySet is a collection of data from a database. A QuerySet is built up as a list of objects. QuerySets makes it easier to get the data you actually need, by allowing you to filter and order the data.
The values_list() method allows you to return only the columns that you specify.
Retrieving Single Objects from QuerySets We can do this using the get() method. The get() returns the single object directly. Let's see the following example. As we can see in both examples, we get the single object not a queryset of a single object.
full name is not a field in the django model, it is not possible. you can use list comprehensions
[person.fullname for person in Person.objects.all() ]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With