ceuskervin ceuskervin - 1 year ago 65
Python Question

Creating a Django Property

I copied this piece of code from another SO question (link).

from django.template.defaultfilters import truncatechars # or truncatewords

class Foo(models.Model):
description = models.TextField()

def short_description(self):
return truncatechars(self.description, 100)

class FooAdmin(admin.ModelAdmin):
list_display = ['short_description']

I also copied this piece of code from this question (link).

class Projects(models.Model):
Name = models.CharField(max_length=100, null=True, blank=False)
Date = models.DateField(null=True, blank=False)
Month = models.CharField(max_length=100, null=True, blank=False)

def get_month(self):
if self.Date:
self.Month = self.Date.strftime("%B")

I am aware of the concepts being discussed in these 2 questions, however I am not sure where I can find the list of available options. For example, the use of
return truncatechars(self.description, 100)
and the use of
self.Month = self.Date.strftime("%B")
, where is the library where I can find my available options? I want to create a new property but not sure where to find my 'library' of options.

I also assume this will always be made in the

Answer Source

I dont know what you mean by 'library' of options, there is no library for defining a property in Django. It is just a normal attribute of Python since version 2.2.

and yes, models.py is the place where you define it since only there you define the fields of a class.

> example for property from official docs