把任何事和任何事联系起来

django-generic-m2m的Python项目详细描述


把任何事和任何事联系起来。下图是example app的屏幕截图 并显示了一篇与2个“Place”模型和一个“City”模型“相关”的博客文章:

http://media.charlesleifer.com/images/photos/genericm2m-tagging.png

检查documentation是否 更多的例子和对应用程序的深入描述(或者继续阅读 30秒版本)。

它的功能

此项目的目的是允许您创建数据库级别 使用一致api的各种对象之间的关系。

示例应用程序

与源代码捆绑在一起的是一个示例应用程序,它显示了generic-m2m 可用于在模型之间创建“标记”。它使用nathanborror’s basic appsdjango-completion(无耻的插头) 允许用户“自动完成”模型之间的各种关系,因此如果 一个用户,想要创建一个新的博客文章,我可以用它来标记 与代表一个城市、一个地方、一张有趣的猫照片等的物体的关系。

http://media.charlesleifer.com/images/photos/generic-m2m-rel-objs.png

快速概述

假设您有两个型号:

class Food(models.Model):
    name = models.CharField(max_length=255)

    related = RelatedObjectsDescriptor()

    def __unicode__(self):
        return self.name


class Beverage(models.Model):
    name = models.CharField(max_length=255)

    related = RelatedObjectsDescriptor()

    def __unicode__(self):
        return self.name

下面是一个示例交互式解释器会话,显示基本的api:

>>> pizza = Food.objects.create(name='pizza')
>>> pepperoni = Food.objects.create(name='pepperoni')
>>> beer = Beverage.objects.create(name='beer')
>>> soda = Beverage.objects.create(name='soda')

>>> pizza.related.connect(pepperoni)
<RelatedObject: pizza related to pepperoni ("")>

>>> pizza.related.connect(beer)
<RelatedObject: pizza related to beer ("")>

>>> pepperoni.related.related_to()
[<RelatedObject: pizza related to pepperoni ("")>]

>>> pizza.related.all()
[<RelatedObject: pizza related to beer ("")>, <RelatedObject: pizza related to pepperoni ("")>]

>>> pizza.related.all().generic_objects()
[<Beverage: beer>, <Food: pepperoni>]

>>> Food.related.all()
[<RelatedObject: pizza related to beer ("")>, <RelatedObject: pizza related to pepperoni ("")>]

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

推荐PyPI第三方库


热门话题
带有字符串的java JNA调用与带有字节[]的java JNA调用的行为不同   java基于键列表获取子映射   重启后永久增加java堆大小?   JavaHTTPS服务器:相互SSL身份验证   java为什么接受接口的方法会拒绝该接口的实现?   片段中的java视图无法应用于()   ms access Java SQL更新命令不工作   java将web服务自动打包和部署到Oracle Application Server 10g   java有没有办法在安卓 studio中为安卓时钟设置多个警报?   位于FTP服务器上的文件上的Java校验和md5   在Java中创建类时遇到问题。有些方法不太确定   java错误:在类chrome\u驱动程序中找不到主方法   通用海图(Javascript\Java)