django-anarticle

App for publishing articles with tags and categories


Keywords
django, graphql, ariadne, aglean, article, tag, category
License
Apache-2.0
Install
pip install django-anarticle==0.1.0rc3

Documentation

django app of an article

Anarticle uses tag, catelog, and article models to publish articles. Support for Ariadne graphQL with pre-defined types and basic resolvers.

Requirements

  • Python 3.10+
  • django 4.0+
  • pillow 9.4.0+

Settings

Store uploaded file with tokenize file name, default to False

  • ANARTICLE_USE_TOKEN_FILENAME = True

Django admin mixins

Use predefined mixins to construct the admin class.

  • TagAdminMixin
  • CategoryAdminMixin
  • ArticleAdminMixin
from django.contrib import admin

from anarticle.models import Tag
from anarticle.admin.mixins import TagAdminMixin


@admin.register(Tag)
class TagAdmin(TagAdminMixin, ModelAdmin):
    ...

Ariadne types and resolvers

Integrate predefined types and resolvers to scheme.

Requirements

  • ariadne 0.16.0+
  • ariadne-relay 0.1.0a8+

scheme

from anarticle.graphqls import anarticle_schema
  • anarticle/graphqls/article.graphql
  • anarticle/graphqls/tag.graphql
  • anarticle/graphqls/category.graphql

types

from anarticle.graphqls import anarticle_bindables
  • anarticle
  • anarticle_paragraph
  • anarticle_tag
  • anarticle_category

resolvers

Async version

from anarticle.graphqls import resolve_anarticle_tag_instance, \
        resolve_anarticle_tag_articles_connection, resolve_anarticle_tags

anarticle_tag.set_instance_resolver(resolve_anarticle_tag_instance)
anarticle_tag.set_connection('articles', resolve_anarticle_tag_articles_connection)

query.set_field('tags', resolve_anarticle_tags)
  • resolve_anarticle_tag_instance,
  • resolve_anarticle_tag_articles_connection,
  • resolve_anarticle_category_instance,
  • resolve_anarticle_category_tags_connection,
  • resolve_anarticle_instance,
  • resolve_anarticle_paragraphs,
  • resolve_anarticle_tags_connection,
  • resolve_anarticle_tags,
  • resolve_anarticle_categories,
  • resolve_anarticles,

Sync version

  • resolve_anarticle_tag_instance_sync,
  • resolve_anarticle_tag_articles_connection_sync,
  • resolve_anarticle_category_instance_sync,
  • resolve_anarticle_category_tags_connection_sync,
  • resolve_anarticle_instance_sync,
  • resolve_anarticle_paragraphs_sync,
  • resolve_anarticle_tags_connection_sync,
  • resolve_anarticle_tags_sync,
  • resolve_anarticle_categories_sync,
  • resolve_anarticles_sync,

License

django-anarticle is released under the terms of Apache license. Full details in LICENSE file.