Если есть только два состояния юзера:
1) Юзер не имеет доступа к платному контенту
2) Юзер имеет доступ к платному контенту
То такой вариант норм. Я бы добавил datetime nullable поле paid_till (проплачено до [если, конечно, есть некая подписка]) и создал метод
def is_paid(self):
if self.paid_till is None:
return False
return self.paid_till >= timezone.now()
И им проверял бы, есть подписка у юзера или нет.