跳转到主要内容

将任何事物与任何事物相关联

项目描述

将任何事物与任何事物相关联。下面的图片是示例应用程序的截图,展示了一篇“相关”了2个“地点”模型和一个“城市”模型的博客文章

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

查看文档以获取更多示例和该应用程序的深入描述(或者继续阅读30秒版本)。

作用

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

示例应用程序

源代码附带了一个示例应用程序,它展示了如何使用generic-m2m在模型之间创建“标签”。它使用nathanborror的基本应用程序django-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 ("")>]

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

django-generic-m2m-0.3.1.tar.gz (9.2 kB 查看哈希值)

上传时间: 源代码

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面