Я добавил логики в кастомные методы в моей модели.
Я сделал это для использования этих методов во views.py
Модель:
class Quiz(models.Model):
# Some fields..
# And some example methods that contain a logic
def get_manage_questions_url(self):
return reverse('manage-questions', kwargs={'slug': self.slug})
def get_likes_count(self):
return self.likes.count()
def get_completed_count(self):
return QuizManager.objects.filter(quiz=self, completed=True).count()
def like_quiz(self, quiz, user):
data = {}
if user in quiz.likes.all():
quiz.likes.remove(user)
data['liked'] = False
else:
quiz.likes.add(user)
data['liked'] = True
data['likes'] = quiz.get_likes_count()
return data
def increase_views(self):
self.views += 1
self.save(update_fields=('views',))
У меня есть вопрос:
Нужно ли мне писать все кастомные методы в модели или мне нужно поместить такие методы в менеджер типа QuizManager(models.Manager) и определить атрибут "objects" в модели Quiz?