为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')
安装
PyPI上的最新稳定版本
$ pip install sirep
将‘sirep’添加到您的INSTALLED_APPS
>>> INSTALLED_APPS = ( >>> # ... >>> 'sirep', >>> # ... >>> )
运行以下django管理命令
$ ./manage.py collectstatic
将以下行添加到全局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中描述的安装说明。
自动安装器位于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
支持
有关任何问题,请联系作者部分中给出的电子邮件。
项目详情
sirep-0.5.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4685c2c151acf7a106d208bb314010f9394edf8667442615bf0b815c3faaf379 |
|
MD5 | b2218b7ab9a42f7e26573025a7acf1b9 |
|
BLAKE2b-256 | 43d9544ad47bc7221dec86598ddeda8df888386a91a7edb6e177dfbcf8f9855e |