Some people on HN have pointed out that I'm sloppy in talking about /dʒ/ above rather than the true affricate /d͡ʒ/. I concede this.
However, pointing out that /d͡ʒ/ technically doesn't start with a /d/ doesn't make the "d" in "Django" silent.
The best explanation for why "Django" is spelled with a "d" is not that the "d" is silent and the "j" represents /d͡ʒ/ but rather that the diagraph "dj" represents /d͡ʒ/.
My main point was that the "d" exists in "Django" because "j" alone would be pronounced /ʒ/ and hence the "d" isn't a silent letter but exists explicitly to contrast /d͡ʒ/ with /ʒ/.