DryORM
Code
Result
no cache
Django 6.0
Django 5.2.8
Django 4.2.26 LTS
SQLAlchemy 2.0
Prisma 6.3
SQLite
PostgreSQL 17.4
PostGIS 3.5 (PostgreSQL 16)
MariaDB 11.4.5
Select a template
django
sqlalchemy
prisma
from django.db import models from django.db.models import Q, CheckConstraint class Place(models.Model): name = models.CharField(max_length=50) class News(models.Model): title = models.CharField(max_length=50) class File(models.Model): file = models.CharField(max_length=200) subject = models.CharField(max_length=50) file_type = models.CharField(max_length=50) place = models.ForeignKey( Place, on_delete=models.CASCADE, related_name="files", null=True, blank=True, ) news = models.ForeignKey( News, on_delete=models.CASCADE, related_name="files", null=True, blank=True, ) class Meta: constraints = [ CheckConstraint( check=( # Either place is set and news is null (Q(place__isnull=False) & Q(news__isnull=True)) | # Or news is set and place is null (Q(place__isnull=True) & Q(news__isnull=False)) ), name="only_one_fk_filled" ) ] def run(): place = Place.objects.create(name="Park") news = News.objects.create(title="Breaking News") valid1 = File.objects.create( file="a.txt", subject="example", file_type="txt", place=place ) print(f'Created with place: {valid1.id}') valid2 = File.objects.create( file="b.txt", subject="example", file_type="txt", news=news ) print(f'Created with news: {valid2.id}') try: File.objects.create( file="c.txt", subject="example", file_type="txt", place=place, news=news ) except Exception as e: print(f'Invalid (both FKs set): {e}')
Output
Show Template
No output.
Queries
INSERT
I
UPDATE
U
SELECT
S
DELETE
D
DDL
D
TCL
T
Queries
Q
(
0
)
No queries.
✖ Close
Save & Share
✖
private?
Save
Save & Copy