Sejujurnya, jika hal-hal itu adalah penghalang bagi Anda, jangan gunakan Django. Saya adalah pendukung Django yang sangat kuat, tetapi jika Anda merasa itu tidak memenuhi kebutuhan Anda, Anda harus pergi dengan sesuatu yang lain.
Saya harus mengatakan bahwa itu adalah hal-hal aneh untuk difiksasi. Saya tidak dapat membayangkan mengapa bidang kunci utama tambahan pada tabel M2M perantara akan menjadi masalah sama sekali. (Namun, perhatikan bahwa bidang komposit - termasuk PK - telah menjadi subjek proyek Summer of Code tahun ini, dan tampaknya siap untuk digabungkan - lihat https://groups.google.com/forum/#!topic/django-developers/CD7OrkJ63zc )
Dan lagi, mengapa kurangnya default pada tingkat SQL "membuat hidup lebih sulit" sulit untuk dipahami:jika Anda melakukan semuanya melalui ORM Django, di mana default diterapkan tidak ada bedanya; plus, seperti yang dikatakan Adrian pada tiket itu, melakukannya dalam SQL sebenarnya akan mengurangi fungsionalitas saat ini dengan membuat hal-hal seperti default yang dapat dipanggil menjadi tidak mungkin.
Anda juga harus merenungkan mengapa Anda membiarkan detail yang relatif sepele ini menutupi manfaat besar yang diberikan Django kepada Anda:ORM ekspresif, bahasa templat, komunitas yang berkembang, sejumlah besar aplikasi pihak ketiga... Tetapi, meskipun demikian, sekali lagi Anda bebas memilih sesuatu yang lain jika itu benar-benar tidak cocok untuk Anda.