Я бы завёл модель Invite с текстовым полем для хранения уникального идентификатора инвайта, ForeignKey на группу и, если надо, ForeignKey на User, которому инвайт предназначается. А также сделал бы view для ввода идентификатора инвайта. При правильном вводе идентификатора, пользователь добавляется в группу, а инвайт или удаляется или метится как использованный.