Per aggiungere un vincolo a una colonna Deve esistere prima nella tabella non c'è alcun comando in Postgresql che puoi usare che aggiungerà la colonna e aggiungerà il vincolo allo stesso tempo. Devono essere due comandi separati. Puoi farlo usando i seguenti comandi:
Per prima cosa fai come:
ALTER TABLE links_chatpicmessage ADD COLUMN sender INTEGER;
Uso integer
come digitare qui ma dovrebbe essere lo stesso tipo di id
colonna del auth_user
tabella.
Quindi aggiungi il vincolo
ALTER TABLE links_chatpicmessage
ADD CONSTRAINT fk_someName
FOREIGN KEY (sender)
REFERENCES auth_user(column_referenced_name);
Il ADD CONSTRAINT fk_someName
parte di questo comando è la denominazione il tuo vincolo, quindi se hai bisogno di documentarlo con uno strumento che crei il tuo modello avrai un vincolo denominato invece di un nome casuale.
Inoltre serve agli scopi degli amministratori in modo che un DBA sappia che il vincolo proviene da quella tabella.
Di solito lo chiamiamo con qualche suggerimento su da dove viene a dove fa riferimento nel tuo caso sarebbe fk_links_chatpicmessage_auth_user
quindi chiunque veda questo nome saprà esattamente qual è questo vincolo senza fare query complesse su INFORMATION_SCHEMA per scoprirlo.
MODIFICA
Come accennato dalla risposta di @btubbs, puoi effettivamente aggiungere una colonna con un vincolo in un comando. Così:
alter table links_chatpicmessage
add column sender integer,
add constraint fk_test
foreign key (sender)
references auth_user (id);