This is one of those pronunciations that confuse native speakers too. 得 when pronounced as děi, means "have to". When pronounced as dé, it has many meanings including "get", "be able to", etc. (By the way, děi is NOT a dialect usage. It is formally included in the Mandarin dictionary published in both mainland China and Taiwan.)
So you'd think that if "have to" is děi, "just have to"/"have no choice but to" should be pronounced zhǐděi, but the correct pronunciation is indeed "zhǐdé". The reason behind this is complex, mostly due to historic reasons as well as government-appointed scholars decided that this is the "correct" pronunciation. But as a native, I can tell you that if you say "zhǐděi" no one would bat an eye. So personally I regard both as correct, and many people would probably say the same.
Of course, there are many examples like this in Mandarin. The word "说服" (to convince) is technically pronounced "shuōfú", but many people say "shuìfú" instead because the character "说" actually means "to convince" when pronounced as "shuì". In a way, the authoritative pronunciation actually got it wrong!