跳转到主要内容

为Django admin提供简单报告。

项目描述

自2015年1月1日起,此软件包不再受支持!

简单报告生成。可用于生成任何类型的CSV或HTML报告。与在类中绑定复杂的连接不同,它期望提供查询集以及标题(这些标题基本上是HTML表或CSV文件的第一行的文本值)。此外,它还需要重新定义process_data,它产生一个Python列表的列表。列表中的每个元素应包含与标题完全相同数量的项目。内置了一些过滤选项(date_upper,date_lower,per_page,page)。请参阅代码文档以获取更多信息。

子类中应设置一些必需的属性
  • verbose_name(例如:verbose_name = '文章字数')

  • fields(例如:fields = [u'文章ID', u'标题', u'Slug', u'URL'])

  • queryset(例如:queryset = Article._default_manager.all())

如果您想设置日期过滤,还应提供以下属性
  • date_field(例如:date_field = 'date_published')

安装

  1. PyPI上的最新稳定版本

    $ pip install sirep

  2. 将‘sirep’添加到您的INSTALLED_APPS

    >>> INSTALLED_APPS = (
    >>> # ...
    >>> 'sirep',
    >>> # ...
    >>> )
    
  3. 运行以下django管理命令

    $ ./manage.py collectstatic

  4. 将以下行添加到全局urls.py文件中

    >>> import sirep
    >>> sirep.autodiscover() # autodiscover sirep in applications
    >>> urlpatterns = patterns('',
    >>>    # ... some patterns here
    >>>    # Sirep URLs
    >>>    (r'^sirep/', include('sirep.urls')),
    >>>    # ... some other patterns here
    >>> )
    

5. 在应用程序目录中为您生成的报告创建一个名为“report.py”的文件(参考sirep.reports示例)。为了查看演示,请在您的local_settings中将SIREP_SHOW_ADMIN_TEST_MODEL_DEMO设置为True,并访问“http://localhost:8000/sirep/” URL。

示例应用程序

如果您想有一个工作中的应用程序示例,请检查源代码的示例目录,并遵循example/readme.rst中描述的安装说明。

https://bitbucket.org/barseghyanartur/sirep/src

自动安装器位于sirep_install_example.sh中。将其下载到某处,激活您的虚拟环境并运行安装器。您将很快能够看到示例报告http://127.0.0.1:8000/sirep/foo-report/

使用示例

示例模型模块(文件test_package/models.py

>>> class TestModel(models.Model):
>>>     """
>>>     Test model for making a report.
>>>     """
>>>     title = models.CharField(_("Title"), max_length=50, blank=False, null=False)
>>>     counter = models.PositiveIntegerField(_("Counter"), blank=True, null=True)
>>>     user = models.ForeignKey(User, null=True, blank=True)
>>>     date_published = models.DateTimeField(null=True, blank=True)
>>>
>>>     class Meta:
>>>         verbose_name = _("Sirep test model")
>>>         verbose_name_plural = _("Sirep test models")
>>>
>>>     def __unicode__(self):
>>>         return self.title

示例报告(文件test_package/reports.py)模块

>>> import sirep
>>> from test_package.models import TestModel
>>>
>>> # Define the report class
>>> class TestReport(sirep.Report):
>>>     verbose_name = 'Test report'
>>>     fields = [u'ID', u'Title', u'Counter', u'Username', u'E-mail']
>>>     items = []
>>>     limit = 200
>>>     date_field = 'date_published'
>>>     queryset = TestModel._default_manager.filter().select_related('user')
>>>
>>>     def process_data(self):
>>>         queryset = self.get_queryset()
>>>
>>>         self.items = []
>>>         for a in queryset:
>>>             self.items.append([
>>>                 a.pk,
>>>                 a.title,
>>>                 a.counter,
>>>                 a.user.username if a.user else '',
>>>                 a.user.email if a.user else ''
>>>                 ])
>>>
>>> # Register the report
>>> sirep.register('test-report', TestReport)

这就完了。现在您可以导航到您的报告http://127.0.0.1:8000/sirep/test-report/。注意,test-report是我们使用(sirep.register)注册的报告的slug。

许可证

GPL 2.0/LGPL 2.1

支持

有关任何问题,请联系作者部分中给出的电子邮件。

作者

Artur Barseghyan <artur.barseghyan@gmail.com>

项目详情


下载文件

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

源代码分发

sirep-0.5.tar.gz (12.9 kB 查看哈希值)

上传时间 源代码

由以下机构支持