django的一个简单的可重用应用程序,它可以轻松处理任何应用程序中的任何对象。

django-fav的Python项目详细描述


django fav

django的一个简单的可重用应用程序,它可以轻松处理faving 从任何应用程序中释放任何对象。

它附带一个graphene(graphql)查询,用于在查询中启用fav。

要求

  • Python3.4+
  • Django 1.11

安装

pip install django-fav
  • 将应用程序添加到您的设置中.py
INSTALLED_APPS=[..."fav",...]
  • 同步数据库:
python manage.py migrate

用法:

收藏夹管理器

  • 为用户和对象创建收藏夹实例:
>>>fromdjango.contrib.auth.modelsimportUser>>>frommusic.modelsimportSong>>>user=User.objects.get(username='gengue')>>>song=Song.objects.get(pk=1)>>>fav=Favorite.objects.create(user,song)
or:
>>>fav=Favorite.objects.create(user,1,Song)
or:
>>>fav=Favorite.objects.create(user,1,"music.Song")
  • 获取给定用户喜爱的对象:
>>>fromdjango.contrib.auth.modelsimportUser>>>user=User.objects.get(username='gengue')>>>Favorite.objects.for_user(user)>>>[<Favorite:Favoriteobject1>,<Favorite:Favoriteobject2>,<Favorite:Favoriteobject3>]
  • 现在,获取属于给定模型的用户喜爱的对象:
>>>fromdjango.contrib.auth.modelsimportUser>>>frommusic.modelsimportSong>>>user=User.objects.get(username='gengue')>>>Favorite.objects.for_user(user,model=Song)>>>[<Favorite:Favoriteobject1>,<Favorite:Favoriteobject2>,<Favorite:Favoriteobject3>]
  • 获取任何用户偏好的给定模型的偏好对象实例:
>>>frommusic.modelsimportSong>>>Favorite.objects.for_model(Song)>>>[<Favorite:Favoriteobject1>,<Favorite:Favoriteobject2>,<Favorite:Favoriteobject3>]
  • 获取给定对象和用户的收藏夹实例:
>>>fromdjango.contrib.auth.modelsimportUser>>>frommusic.modelsimportSong>>>user=User.objects.get(username='gengue')>>>song=Song.objects.get(pk=1)>>>fav=Favorite.objects.get_favorite(user,song)
  • 获取给定对象的所有常用实例
>>>frommusic.modelsimportSong>>>song=Song.objects.get(pk=1)>>>fav=Favorite.objects.for_object(song)

图形ql

settings.py中,将grahene查询映射到django模型

FAV_MODELS={'CurrentUser':'core.user','User':'core.user','Track':'listen.Track',}

url_renditions.graphql_schema.Query添加到根查询和变异中。

importgrapheneimportfav.graphql_schemaclassQuery(...fav.graphql_schema.Query,graphene.ObjectType):passclassMutation(...fav.graphql_schema.Mutation,graphene.ObjectType):passschema=graphene.Schema(query=Query,mutation=Mutation)

查询

然后,您可以要求:

query {
  isInUserFavorites(objectId: "VHJhY2s6OA==")
}

你会得到

{"data":{"isInUserFavorites":false}}

突变

mutation {
  favorite(input: {objectId: "VHJhY2s6OA=="}) {
    deleted
    created
  }
}

你会得到

{"data":{"favorite":{"deleted":null,"created":true,}}}

谢谢

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java ParsePushReceiver参数   java如何从设备读取完整数据?   java将java_设置为home,但忽略错误   java如何从歌曲中对专辑进行排序?   java libnaude+windows 10 x64+Eclipse   java如何将maven目标更改为如图所示的想法中的quickicon?   java swing布局中心面板,可滚动显示多个窗口窗格   使用MOSQUITO代理的mqtt中的java SSL   java如何通过属性值获取XML字符串   java在服务器每次启动时停止GWT编译   java如何让javac搜索类路径的子目录?   可以比较java中的两个不同类吗?   JAVAAndroid活动内部类中的lang.NoClassDefFoundError   java HttpServletRequest获取请求头参数块   C++socket与java客户端的连接   java如何在Apache commons http客户端上使用SSL客户端证书   使用预编译正则表达式模式提高java速度   JavaRhino将两个已编译脚本合并为一个脚本