BaseApp Follows
Project description
BaseApp Follows
Reusable app to enable any model follow/unfollow any model.
Requirements:
- **baseapp-core** >= 0.2.3
Run pip install baseapp-follows
And make sure to add the frozen version to your requirements/base.txt
file
If you want to develop, install using this other guide.
How to use
Add baseapp_follows
to your project's INSTALLED_APPS
Now make sure all models you'd like to get follows also inherits FollowableModel
, like:
from baseapp_follows.models import FollowableModel
class User(models.Model, FollowableModel):
Also make sure your GraphQL object types extends FollowsInterface
interface:
from baseapp_follows.graphql.object_types import FollowsInterface
class UserNode(DjangoObjectType):
class Meta:
interfaces = (relay.Node, FollowsInterface)
Expose FollowsMutations
in your GraphQL/graphene endpoint, like:
from baseapp_follows.graphql.mutations import FollowsMutations
class Mutation(graphene.ObjectType, FollowsMutations):
pass
schema = graphene.Schema(query=Query, mutation=Mutation)
This will expose followToggle
mutation and add fields and connections to all your GraphqlQL Object Types using interface FollowsInterface
.
Example:
mutation FollowButtonMutation($input: FollowToggleInput!) {
followToggle(input: $input) {
follow {
node {
id
}
}
target {
id
followersCount
isFollowedByMe
}
actor {
id
followingCount
}
}
}
How to develop
Clone the project inside your project's backend dir:
git clone git@github.com:silverlogic/baseapp-backend.git
And manually install the package:
pip install -e baseapp-backend/baseapp-follows
The -e
flag will make it like any change you make in the cloned repo files will effect into the project.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file baseapp-follows-0.0.7.tar.gz
.
File metadata
- Download URL: baseapp-follows-0.0.7.tar.gz
- Upload date:
- Size: 10.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d9f6087763803b972e872fb1f2fd64b0c31dc80beac842bed62f271d930660c7 |
|
MD5 | d517fa9dd5fd79c2ee02cfd88dd1ba69 |
|
BLAKE2b-256 | fafe8234adbf3e625b70fd004eecd4db0337b87aa8908e748da200bbe009814d |