Если не ошибаюсь, можно в choices передать лямбда-функцию, или даже просто просто ссылку на уже имеющуюся функцию. Которая будет вызываться каждый раз при формировании поля choice, а там вы уже сделаете выборку из БД по одному полю и вычтете полученное из всех возможных вариантов, чтобы остались только те, которых нет в БД.
Anton Kuzmichev, я вот тоже о таком читал когда-то, но в документации просто не могу найти, какой это аргумент. Возможно просто в глаза... Поищу еще, но пока безрезультатно)
В самой модели оставляете choices просто списком всех возможных вариантов, что логично.
А вот в конструкторе формы можно поиграться именно с полем формы, проинициализировав только доступными (которых ещё нет в БД) вариантами.
Anton Kuzmichev, проблема в том, что как раз в модели надо, т.к. будет редактироваться в админке)
Для внешнего ключа нашел: limit_choices_to
А вот для обычного чойса похоже нет подобного. Планирую уже оставлять как есть, в принципе не сильно напряжно (пока что) выглядит. Т.к. добавлять строки будет скрипт, а в админке больше для редактирования нужно было
Максим Компаниец, нет, в модели как раз не надо, надо в форме.
Модели описывают структуру данных, choices в полях - это все возможные варианты, которые могут быть записаны в таблицу.
А в форме вы уже для удобства отсекаете те, что уже есть в БД.