Поскольку HitCountMixin
может наследоваться различными моделями в вашем приложении, модель HitCount
должна быть каким-то образом связана с этими моделями с помощью отношения.Здесь вы можете думать о ContentType
как о способе создания динамического отношения, в отличие от, например, ForeignKey
, где вы обязаны использовать отношение только с одной моделью (таблицей).
get_for_model
простоВспомогательный метод Django для получения экземпляра ContentType для данной модели, поскольку каждая модель (таблица) будет иметь свой соответствующий ContentType
экземпляр.
В примере модели, использующей этот миксин:
class Example(models.Model, HitCountMixin):
pass
ContentType.objects.get_for_model(self.__class__)
вернет ContentType
instace для модели Example
Подробнее о ContentTypes можно прочитать в Документация Django