Posts Apps

class apps.posts.models.Comment(*args, **kwargs)[source]

Bases: Model

Comment model

Parameters:

Relationship fields:

Parameters:

Reverse relationships:

Parameters:

images (Reverse ForeignKey from CommentImage) – All images of this Comment (related name of comment)

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

author

Type: ForeignKey to User

Author (related name: comments)

author_id

Internal field, use author instead.

created_at

Type: DateTimeField

Created at

get_next_by_created_at(*, field=<django.db.models.DateTimeField: created_at>, is_next=True, **kwargs)

Finds next instance based on created_at. See get_next_by_FOO() for more information.

get_next_by_updated_at(*, field=<django.db.models.DateTimeField: updated_at>, is_next=True, **kwargs)

Finds next instance based on updated_at. See get_next_by_FOO() for more information.

get_previous_by_created_at(*, field=<django.db.models.DateTimeField: created_at>, is_next=False, **kwargs)

Finds previous instance based on created_at. See get_previous_by_FOO() for more information.

get_previous_by_updated_at(*, field=<django.db.models.DateTimeField: updated_at>, is_next=False, **kwargs)

Finds previous instance based on updated_at. See get_previous_by_FOO() for more information.

id

Type: BigAutoField

Primary key: ID

images

Type: Reverse ForeignKey from CommentImage

All images of this Comment (related name of comment)

is_deleted

Type: BooleanField

Is Deleted

is_reported

Type: BooleanField

Is reported. Indicates whether the post has violated community rules

objects = <apps.posts.managers.NotDeletedCommentManager object>
post

Type: ForeignKey to Post

Post (related name: comments)

post_id

Internal field, use post instead.

text

Type: TextField

Text

updated_at

Type: DateTimeField

Updated at

class apps.posts.models.CommentImage(*args, **kwargs)[source]

Bases: Model

Comment Media model

Parameters:

Relationship fields:

Parameters:

comment (ForeignKey to Comment) – Comment (related name: images)

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

comment

Type: ForeignKey to Comment

Comment (related name: images)

comment_id

Internal field, use comment instead.

created_at

Type: DateTimeField

Created at

get_next_by_created_at(*, field=<django.db.models.DateTimeField: created_at>, is_next=True, **kwargs)

Finds next instance based on created_at. See get_next_by_FOO() for more information.

get_previous_by_created_at(*, field=<django.db.models.DateTimeField: created_at>, is_next=False, **kwargs)

Finds previous instance based on created_at. See get_previous_by_FOO() for more information.

id

Type: BigAutoField

Primary key: ID

image

Type: ImageField

Image. Only png, jpg or jpeg format

is_deleted

Type: BooleanField

Is Deleted

objects = <apps.posts.managers.NotDeletedCommentImageManager object>
class apps.posts.models.Favorite(*args, **kwargs)[source]

Bases: Model

Favorite model

Parameters:

Relationship fields:

Parameters:
exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

author

Type: ForeignKey to User

Author (related name: favorite_posts)

author_id

Internal field, use author instead.

created_at

Type: DateTimeField

Created at

get_next_by_created_at(*, field=<django.db.models.DateTimeField: created_at>, is_next=True, **kwargs)

Finds next instance based on created_at. See get_next_by_FOO() for more information.

get_previous_by_created_at(*, field=<django.db.models.DateTimeField: created_at>, is_next=False, **kwargs)

Finds previous instance based on created_at. See get_previous_by_FOO() for more information.

id

Type: BigAutoField

Primary key: ID

objects = <django.db.models.Manager object>
post

Type: ForeignKey to Post

Post (related name: favorites)

post_id

Internal field, use post instead.

class apps.posts.models.Like(*args, **kwargs)[source]

Bases: Model

Like model

Parameters:

Relationship fields:

Parameters:
exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

author

Type: ForeignKey to User

Author (related name: liked_posts)

author_id

Internal field, use author instead.

created_at

Type: DateTimeField

Created at

get_next_by_created_at(*, field=<django.db.models.DateTimeField: created_at>, is_next=True, **kwargs)

Finds next instance based on created_at. See get_next_by_FOO() for more information.

get_previous_by_created_at(*, field=<django.db.models.DateTimeField: created_at>, is_next=False, **kwargs)

Finds previous instance based on created_at. See get_previous_by_FOO() for more information.

id

Type: BigAutoField

Primary key: ID

objects = <django.db.models.Manager object>
post

Type: ForeignKey to Post

Post (related name: liked)

post_id

Internal field, use post instead.

class apps.posts.models.Post(*args, **kwargs)[source]

Bases: Model

Post model

Parameters:

Relationship fields:

Parameters:

Reverse relationships:

Parameters:
exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

class VisibilityChoices(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]

Bases: TextChoices

PRIVATE = 'private'
PUBLIC = 'public'
author

Type: ForeignKey to User

Author (related name: posts)

author_id

Internal field, use author instead.

categories

Type: ManyToManyField to Category

Categories (related name: post)

comments

Type: Reverse ForeignKey from Comment

All comments of this post (related name of post)

content

Type: TextField

Content

created_at

Type: DateTimeField

Created at

favorites

Type: Reverse ForeignKey from Favorite

All favorites of this post (related name of post)

favorites_quantity

Type: PositiveIntegerField

Favorites quantity

get_next_by_created_at(*, field=<django.db.models.DateTimeField: created_at>, is_next=True, **kwargs)

Finds next instance based on created_at. See get_next_by_FOO() for more information.

get_next_by_updated_at(*, field=<django.db.models.DateTimeField: updated_at>, is_next=True, **kwargs)

Finds next instance based on updated_at. See get_next_by_FOO() for more information.

get_previous_by_created_at(*, field=<django.db.models.DateTimeField: created_at>, is_next=False, **kwargs)

Finds previous instance based on created_at. See get_previous_by_FOO() for more information.

get_previous_by_updated_at(*, field=<django.db.models.DateTimeField: updated_at>, is_next=False, **kwargs)

Finds previous instance based on updated_at. See get_previous_by_FOO() for more information.

get_status_display(*, field=<django.db.models.CharField: status>)

Shows the label of the status. See get_FOO_display() for more information.

get_visibility_display(*, field=<django.db.models.CharField: visibility>)

Shows the label of the visibility. See get_FOO_display() for more information.

id

Type: BigAutoField

Primary key: ID

is_commenting_allowed

Type: BooleanField

Is commenting allowed

is_deleted

Type: BooleanField

Is deleted

is_reported

Type: BooleanField

Is reported. Indicates whether the post has violated community rules

liked

Type: Reverse ForeignKey from Like

All liked of this post (related name of post)

likes_quantity

Type: PositiveIntegerField

Likes quantity

linked_media

Type: Reverse ForeignKey from PostMedia

All linked media of this post (related name of post)

notifications

Type: Reverse ForeignKey from Notification

All notifications of this post (related name of post)

objects = <apps.posts.managers.NotDeletedManager object>
status

Type: CharField

Status

Choices:

  • proceed

  • ready_for_publish

  • published

tags

Type: ManyToManyField to Tag

Tags (related name: post)

title

Type: CharField

Title

updated_at

Type: DateTimeField

Updated at

views

Type: Reverse ForeignKey from View

All views of this post (related name of post)

views_quantity

Type: PositiveIntegerField

Views quantity

visibility

Type: CharField

Visibility

Choices:

  • public

  • private

class apps.posts.models.PostMedia(*args, **kwargs)[source]

Bases: Model

Post Media model

Parameters:

Relationship fields:

Parameters:

post (ForeignKey to Post) – Post (related name: linked_media)

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

created_at

Type: DateTimeField

Created at

formatted_path

Type: FileField

Formatted path

get_next_by_created_at(*, field=<django.db.models.DateTimeField: created_at>, is_next=True, **kwargs)

Finds next instance based on created_at. See get_next_by_FOO() for more information.

get_next_by_updated_at(*, field=<django.db.models.DateTimeField: updated_at>, is_next=True, **kwargs)

Finds next instance based on updated_at. See get_next_by_FOO() for more information.

get_previous_by_created_at(*, field=<django.db.models.DateTimeField: created_at>, is_next=False, **kwargs)

Finds previous instance based on created_at. See get_previous_by_FOO() for more information.

get_previous_by_updated_at(*, field=<django.db.models.DateTimeField: updated_at>, is_next=False, **kwargs)

Finds previous instance based on updated_at. See get_previous_by_FOO() for more information.

get_type_display(*, field=<django.db.models.CharField: type>)

Shows the label of the type. See get_FOO_display() for more information.

id

Type: BigAutoField

Primary key: ID

objects = <django.db.models.Manager object>
original

Type: FileField

Original content

post

Type: ForeignKey to Post

Post (related name: linked_media)

post_id

Internal field, use post instead.

preview_path

Type: FileField

Preview path

type

Type: CharField

Type

Choices:

  • image

  • video

updated_at

Type: DateTimeField

Updated at

class apps.posts.models.Tag(*args, **kwargs)[source]

Bases: Model

Hashtag model

Parameters:

Reverse relationships:

Parameters:

post (Reverse ManyToManyField from Post) – All posts of this tag (related name of tags)

exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

id

Type: BigAutoField

Primary key: ID

name

Type: CharField

Name

objects = <django.db.models.Manager object>
post_set

Type: Reverse ManyToManyField from Post

All posts of this tag (related name of tags)

class apps.posts.models.View(*args, **kwargs)[source]

Bases: Model

View model

Parameters:

id (BigAutoField) – Primary key: ID

Relationship fields:

Parameters:
exception DoesNotExist

Bases: ObjectDoesNotExist

exception MultipleObjectsReturned

Bases: MultipleObjectsReturned

author

Type: ForeignKey to User

Author (related name: viewed_posts)

author_id

Internal field, use author instead.

id

Type: BigAutoField

Primary key: ID

objects = <django.db.models.Manager object>
post

Type: ForeignKey to Post

Post (related name: views)

post_id

Internal field, use post instead.

apps.posts.models.commentImageFile(instance, filename)[source]

Function returns path to background image

apps.posts.models.postFormattedPath(instance, filename)[source]
apps.posts.models.postImageFile(instance, filename)[source]

Function returns path to image

apps.posts.models.postPreviewPath(instance, filename)[source]
apps.posts.models.preview_path()[source]
class apps.posts.admin.CommentAdminModel(model, admin_site)[source]

Bases: RolePermissionsModelAdmin

Admin class for comment model

get_readonly_fields(request, obj=None)[source]

Hook for specifying custom readonly fields.

inlines = [<class 'apps.posts.admin.CommentImageInline'>]
list_display = ['post', 'author', 'text', 'is_deleted', 'is_reported']
list_filter = ['post__categories', 'post__tags', 'author']
property media
search_fields = ['text']
class apps.posts.admin.CommentImageInline(parent_model, admin_site)[source]

Bases: StackedInline

property media
model

alias of CommentImage

class apps.posts.admin.CommentImageModel(model, admin_site)[source]

Bases: RolePermissionsModelAdmin

Admin class for comment model

property media
class apps.posts.admin.FavoriteAdminModel(model, admin_site)[source]

Bases: RolePermissionsModelAdmin

Admin class for favorite post

property media
class apps.posts.admin.LikeAdminModel(model, admin_site)[source]

Bases: RolePermissionsModelAdmin

Admin class for like model

list_display = ['post', 'author']
property media
class apps.posts.admin.PostAdminModel(model, admin_site)[source]

Bases: RolePermissionsModelAdmin

Admin class for post model

display_categories(obj)[source]
display_tags(obj)[source]
get_readonly_fields(request, obj=None)[source]

Hook for specifying custom readonly fields.

inlines = [<class 'apps.posts.admin.PostMediaAdminInline'>]
list_display = ['pk', 'title', 'author', 'display_tags', 'display_categories', 'created_at', 'is_reported', 'is_deleted']
list_filter = ['categories', 'tags', 'author']
property media
search_fields = ['title']
class apps.posts.admin.PostMediaAdminInline(parent_model, admin_site)[source]

Bases: StackedInline

property media
model

alias of PostMedia

class apps.posts.admin.PostMediaModel(model, admin_site)[source]

Bases: RolePermissionsModelAdmin

Admin class for post media model

list_display = ('post', 'type', 'created_at')
list_filter = ('type', 'created_at')
property media
read_only_fields = ['formatted_path', 'preview_path']
apps.posts.signals.delete_post(sender, instance, **kwargs)[source]
apps.posts.signals.index_post(sender, instance, **kwargs)[source]
class apps.posts.validators.FileSizeValidator(*args, **kwargs)[source]

Bases: object

__init__(max_size_name=None)[source]
code = 'invalid_size'
deconstruct()

Return a 3-tuple of class import path, positional arguments, and keyword arguments.

message = 'The maximum file size that can be uploaded is %(size)s.'
class apps.posts.validators.ImageResolutionValidator(*args, **kwargs)[source]

Bases: object

__init__(min_width, min_height)[source]
code = 'invalid_image_resolution'
deconstruct()

Return a 3-tuple of class import path, positional arguments, and keyword arguments.

message = 'Invalid resolution.'
class apps.posts.validators.VideoDurationValidator(*args, **kwargs)[source]

Bases: object

__init__(max_duration)[source]
code = 'invalid_duration'
deconstruct()

Return a 3-tuple of class import path, positional arguments, and keyword arguments.

message = 'The max video duration can be less that %(duration)s minutes.'
class apps.posts.validators.VideoResolutionValidator(*args, **kwargs)[source]

Bases: object

__init__(min_width_horizontal=1280, min_height_horizontal=720, max_width_horizontal=1920, min_width_vertical=480, min_height_vertical=720, max_width_vertical=1080)[source]
code = 'invalid_video_resolution'
deconstruct()

Return a 3-tuple of class import path, positional arguments, and keyword arguments.

message = 'Invalid resolution.'
class apps.posts.constants.ContentTypeChoices(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]

Bases: TextChoices

Content type choices

IMAGE = 'image'
VIDEO = 'video'
class apps.posts.constants.StatusPostChoice(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]

Bases: TextChoices

Status post choice

PROCEED = 'proceed'
PUBLISHED = 'published'
READY_FOR_PUBLISH = 'ready_for_publish'
class apps.posts.managers.NotDeletedCommentImageManager(*args, **kwargs)[source]

Bases: Manager

Manager that uses the NotDeletedQuerySet to filter out deleted objects.

get_queryset() NotDeletedQuerySet[source]

Return a new QuerySet object. Subclasses can override this method to customize the behavior of the Manager.

class apps.posts.managers.NotDeletedCommentImageQuerySet(model=None, query=None, using=None, hints=None)[source]

Bases: QuerySet

QuerySet that filters out objects which are marked as deleted.

alive()[source]
class apps.posts.managers.NotDeletedCommentManager(*args, **kwargs)[source]

Bases: Manager

Manager that uses the NotDeletedQuerySet to filter out deleted objects.

get_queryset() NotDeletedQuerySet[source]

Return a new QuerySet object. Subclasses can override this method to customize the behavior of the Manager.

class apps.posts.managers.NotDeletedCommentQuerySet(model=None, query=None, using=None, hints=None)[source]

Bases: QuerySet

QuerySet that filters out objects which are marked as deleted.

alive()[source]
class apps.posts.managers.NotDeletedManager(*args, **kwargs)[source]

Bases: Manager

Manager that uses the NotDeletedQuerySet to filter out deleted objects.

get_queryset() NotDeletedQuerySet[source]

Return a new QuerySet object. Subclasses can override this method to customize the behavior of the Manager.

public()[source]
visible_for_user(user)[source]
class apps.posts.managers.NotDeletedQuerySet(model=None, query=None, using=None, hints=None)[source]

Bases: QuerySet

QuerySet that filters out objects which are marked as deleted.

alive()[source]

Order queryset from bigger post like/view quantity :return:

private_for_user(user: User)[source]
public()[source]
visible_for_user(user: User)[source]

Get posts that are visible for the given user: - All public posts - All private posts authored by the given user

with_comments_count()[source]

Count comments for post

class apps.posts.documents.PostDocument(related_instance_to_ignore=None, **kwargs)[source]

Bases: DocType

class Django[source]

Bases: object

fields = ['title']
model

alias of Post

related_models = [<class 'apps.posts.models.Tag'>, <class 'apps.users.models.Category'>]
class Index[source]

Bases: object

name = 'posts'
django = {'model': <class 'apps.posts.models.Post'>, 'ignore_signals'...}
class apps.posts.apps.PostsConfig(app_name, app_module)[source]

Bases: AppConfig

default_auto_field = 'django.db.models.BigAutoField'
name = 'apps.posts'
ready() None[source]

Override this method in subclasses to run code when Django starts.