2013-08-05 2 views
2

Я всегда получаю первичный столбец как идентификатор в модели Django. Есть ли возможность изменить. Напр. для таблицы City Я хочу иметь столбец первичного ключа как city_id.Поле идентификатора в модели Django

+0

Это Django не Джанго. –

ответ

6
city_id = models.AutoField(primary_key=True) 
2

Конечно, вы можете.

city_id = models.BigIntegerField(primary_key=True) 
4

Ответ ДА,

Что-то вроде этого:

city_id = models.PositiveIntegerField(primary_key=True) 

Здесь вы перекрывая id. Documentation here

Если вы хотите указать настраиваемый первичный ключ, просто укажите primary_key = True в одном из ваших полей. Если Django видит, что вы явно установили Field.primary_key, он не добавит столбец автоматического id.

В качестве альтернативы, вы всегда можете определить свойство модели и использовать это. Пример

class City(models.Model) 
    #attributes 
    @property 
    def city_id(self): 
     return self.id 

и доступ к нему, как city.city_id где вы обычно делаете city.id

+0

спасибо! – syv

Смежные вопросы