Никак не мог придумать, как озаглавить статью). Просто есть две вещи, которые хотел упомянуть. Создаём метод класса, возвращающий модели класса, который может вернуть и только указанные поля всех удовлетворяющих условиям моделей.
from django . db import models
from django . contrib . auth . models import User
from django . db . models import Q
class Exercise ( models . Model ) :
name = models . CharField ( max_length = 255 )
is_paired = models . BooleanField ( default = False )
user = models . ForeignKey ( User , blank = True , null = True )
@ classmethod
def getExercisesForUser ( cls , User , Fields = ( ) ) :
query = cls . objects . filter ( Q ( user = None ) | Q ( user = User ) )
if Fields :
query = query . only ( * Fields )
return query
Здесь нужно выделить два важных момента:
cls . objects . filter ( Q ( user = None ) | Q ( user = User ) )
Здесь создаётся фильтр моделей, созданных конкретным пользователем или не относящимся ни к какому пользователю. Подробнее о …
Read more