La barra rovesciata è trattata come meta-carattere da Django e viene interpretata tra virgolette doppie. Quindi uno strato di E'\\s+') viene rimosso prima che la stringa arrivi al server PostgreSQL, che vedrà E'\s+') . La stringa di escape risulterà in 's+' che a sua volta creerà regexp_split_to_table() dividi le tue stringhe a qualsiasi numero di s invece dello spazio non stampabile, che la classe di caratteri abbrevia \s sta per nelle espressioni regolari.
Raddoppia le barre inverse nella stringa per ottenere ciò che volevi:E'\\\\s+') :
"SELECT regexp_split_to_table(field_name, E'\\\\s+') FROM mytable LIMIT 20"
In alternativa, per evitare problemi con il significato speciale della barra rovesciata \ , puoi usare [[:space:]] per denotare la stessa classe di caratteri:
"SELECT regexp_split_to_table(field_name, '[[:space:]]+') FROM mytable LIMIT 20"
Dettagli nel capitolo " Pattern Matching" nel manuale .