В Rails и в Symfony с Doctrine вы можете сохранить запись, и тогда у вас будет идентификатор записи. Например:
b = Bank.new
b.save
#b.id now has a value
Но в Django это явно не так:
>>> b = Bank()
>>> b.name = "Fred's Bank"
>>> b.identifier = "fred"
>>> b.save()
>>> b.id
>>> b.id.__class__
<type 'NoneType'>
>>>
Как видите, b.id
ничего не значит. Должен ли я вернуться и выбрать идентификатор, если я этого хочу? Это было бы неприятно, особенно для таблиц с большим количеством столбцов.