Вы можете легко добавить метод экземпляра в свой класс Categories
, например:
class Categories(models.Model):
... rest of your definition ...
def get_spamwords_as_list(self):
return self.spamwords.split(',')
Вы можете использовать его следующим образом:
cat = Categories.objects.get(id=1)
print cat.get_spamwords_as_list()
Но я 'Мне интересно узнать вашу базовую модель данных - почему вы не используете ManyToManyField
для моделирования своих категорий?
ОБНОВЛЕНИЕ : добавление альтернативной универсальной версии:
def get_word_list(self, name):
if name in ['keywords', 'spamwords', 'translations']:
return getattr(self, name).split(',')
# or even
def __getattr__(self, name):
if name[-5:] == '_list' and name[:-5] in ['keywords', 'spamwords', 'translations']:
return getattr(self, name[:-5]).split(',')
else
raise AttributeError
cat = Categories.get(pk=1)
cat.get_word_list('keywords') # ['word 1', 'word 2', ...]
cat.keywords_list # ['word 1', 'word 2', ...] with 2nd approach
cat.keywords # 'word 1, word 2' -- remains CSV