Ehrlich gesagt, wenn diese Dinge Blockaden für Sie sind, verwenden Sie Django nicht. Ich bin ein sehr starker Befürworter von Django, aber wenn Sie der Meinung sind, dass es Ihren Anforderungen nicht entspricht, sollten Sie sich für etwas anderes entscheiden.
Ich muss jedoch sagen, dass das seltsame Dinge sind, auf die man sich konzentrieren kann. Ich kann mir nicht vorstellen, warum ein zusätzliches Primärschlüsselfeld in einer M2M-Zwischentabelle überhaupt ein Problem darstellen würde. (Beachten Sie jedoch, dass zusammengesetzte Felder – einschließlich PKs – dieses Jahr Gegenstand eines Summer of Code-Projekts waren und zur Zusammenführung bereit sind – siehe https://groups.google.com/forum/#!topic/django-developers/CD7OrkJ63zc )
Und noch einmal, warum das Fehlen von Standardwerten auf SQL-Ebene „das Leben schwerer macht“, ist schwer zu verstehen:Wenn Sie alles über Djangos ORM erledigen, macht es keinen Unterschied, wo der Standardwert angewendet wird; Außerdem würde, wie Adrian auf diesem Ticket sagte, die Ausführung in SQL die aktuelle Funktionalität tatsächlich reduzieren, indem Dinge wie aufrufbare Standardwerte unmöglich gemacht würden.
Sie sollten auch darüber nachdenken, warum Sie diese relativ trivialen Details die großen Vorteile überschatten lassen, die Django Ihnen bietet:ausdrucksstarkes ORM, Vorlagensprache, blühende Community, eine große Anzahl von Drittanbieter-Apps ... Aber selbst das gesagt, noch einmal Es steht Ihnen frei, etwas anderes zu wählen, wenn es wirklich nicht für Sie funktioniert.