DryORM
Code
Result
no cache
SQLite
PostgreSQL 17.4
MariaDB 11.4.5
Select a template
dryorm features
basic
bulk create
bulk fake
csv import
basic fk
self fk
user profile
dryorm tabular output
from django.db import models from django.utils import timezone import datetime class Compactor(models.Model): name = models.CharField(max_length=100) class Bale(models.Model): TIMESTAMP = models.DateTimeField() weight_kg = models.FloatField(default=0.0) class BalingActivity(models.Model): COMPACTOR = models.ForeignKey(Compactor, on_delete=models.CASCADE) TIMESTAMP = models.DateTimeField() BALES = models.ManyToManyField(Bale) def run(): compactor = Compactor.objects.create(name='Compactor A') now = timezone.now() bale_old = Bale.objects.create(TIMESTAMP=now - datetime.timedelta(hours=3), weight_kg=120.5) bale_mid = Bale.objects.create(TIMESTAMP=now - datetime.timedelta(hours=2), weight_kg=130.0) bale_new = Bale.objects.create(TIMESTAMP=now - datetime.timedelta(hours=1), weight_kg=125.0) activity1 = BalingActivity.objects.create(COMPACTOR=compactor, TIMESTAMP=now - datetime.timedelta(days=1)) activity2 = BalingActivity.objects.create(COMPACTOR=compactor, TIMESTAMP=now) activity1.BALES.add(bale_old, bale_mid) activity2.BALES.add(bale_new) # V1 prev_baling_activity_A = BalingActivity.objects.filter(COMPACTOR=compactor).order_by('TIMESTAMP').last() v1_bale = list( prev_baling_activity_A.BALES.through.objects .filter(balingactivity=prev_baling_activity_A) .select_related('bale') .order_by('-bale__TIMESTAMP') )[0].bale # V2 v2_bale = ( BalingActivity.BALES.through.objects .filter(balingactivity__COMPACTOR=compactor) .select_related('bale') .order_by('balingactivity__TIMESTAMP', '-bale__TIMESTAMP') .last().bale ) assert v1_bale == v2_bale
Output
Show Template
No output.
Queries
TCL
T
DDL
D
SELECT
S
INSERT
I
UPDATE
U
DELETE
D
Queries
Q
(
0
)
No queries.
✖ Close
Save & Share
✖
private?
Save
Save & Copy