我有一个简单的django模型,由一个传感器和特定传感器的值组成。每个日射强度计的值的数量很高(> 30 k)。是否有可能以某种方式分页PyranometerValues
的一个特定的一天或generell应用一个分页到管理内联视图?
class Pyranometer(models.Model):
name = models.CharField(max_length=75)
class PyranometerValues(models.Model):
timestamp = models.DateTimeField()
value = models.DecimalField(max_digits=10,decimal_places=6)
sensor = models.ForeignKey('Pyranometer')
6条答案
按热度按时间rm5edbpk1#
如果有人需要这样做,我在a django-suit问题的注解中发现了一个分页
TabularInline
子类的很好的(尽管被描述为“相当古怪”)实现。对于Django 1.6,它需要修改模板并将这个
PaginationInline
类子类化:x6yk4ghg2#
对于任何版本的Django,请按照以下步骤操作:
1.访问此文件:
python3.7/site-packages/django/contrib/admin/templates/admin/edit_inline/tabular.html
将其复制到您的app/templates/admin/edit_inline/anyname.html
中在
</table>
和</fieldset>
标签之间添加anyname.html:2.进入您的admin.py文件:
uttx8gqw3#
是否检查了raw_id_fields属性?我想你可能会觉得有用。
xyhw6mcr4#
由于django-admin主要是一个模板的问题(只需要将模板重新定义到一些django-admin-tools部分),我有一个想法。
是Django的分页模块,如linaro-django-pagination或endless-pagination,它们提供模板标签来对任何给定的可迭代内容进行分页。
如果您可以找到负责显示内联模型的模板,您可以将其复制到您的项目中,然后尝试向其添加{% load pagination_tags %}并对内联进行分页。
我没有测试过它,也没有仔细考虑过它,但除了验证,我看不出它怎么会失败。测试并告诉我们。
w1e3prcc5#
那么,动态生成的过滤器可能会有所帮助:
https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.list_filter
此外,管理员有一个很好的GET类型查询,如:
localhost:8000/admin/pyranometervalues/?值=10.0
您可以将日期指定为:
admin/日射强度计值/?timestamp_year=2011×tamp_month=10×tamp__day=13
等等不幸的是,我不知道一个更短的方式,使这个查询在管理。有什么想法吗?:)
编辑:这只是为了缩小你的查询范围,与分页无关;)
scyqe7ek6#
在我的例子中,django-admin-inline-paginator分页内联是有效的。
我有一个项目与900相关的同类项目,必须显示为内联。在使用这个包之前,我得到了502,因为nginx在uwsgi能够创建响应之前超时。使用这个软件包帮助我大大减少了响应时间,虽然我相信我仍然会有很多交通问题
仅供参考,我从uwsgi得到的错误是: