Вы, кажется, очень смущены, к сожалению. Конечно, Django читает код в models.py - иначе какой в этом смысл? Django изначально использует этот код для определения модели SQL при выполнении syncdb, но не изменяет существующую базу данных таблиц при последующих вызовах syncdb - отсюда необходимость в South.
Но, естественно, Django использует models.py и admin.py и весь другой код Python для определения своей собственной конфигурации и состояния. (И обратите внимание, что административные классы определены не в models.py, а в admin.py.)
Если вы не видите изменений, вам нужно будет перезагрузить сервер.