5

Я хочу отключить автоматическое создание идентификатора в моделях Django. Можно ли это сделать? Как?Как отключить автоматическое создание идентификатора в Django?

+0

Объявите первичный ключ на своей модели (https://docs.djangoproject.com/en/1.8/ref/models/fields/#primary-key). Модели без идентификаторов не поддерживаются (AFAIK) – Roba

+0

Да, это возможно. Но что, если я просто хочу сохранить подобный пользователь для элемента? Мне не нужен id для этого. –

ответ

2

Как уже упоминалось в ответе, вам нужно объявить первичный ключ на неавтоматическом поле. Например:

from django.db import models 

class Person(models.Model): 
    username = CharField(primary_key=True, max_length=100) 
    first_name = CharField(null=True, blank=True, max_length=100) 

Обратите внимание, устанавливая поле для primary_key=True автоматически делает его уникальным и не нулевым. Удачи!

+0

Да, это возможно. Но что, если я просто хочу сохранить подобный пользователь для элемента? Мне не нужен id для этого. –

+0

Правильно, у вас могут быть прецеденты, в которых в ваших таблицах базы данных вы не идете с третьей формой нормализации, но если вам нужны эти таблицы, которые будут отображаться в Django в качестве моделей, вам нужно. С вашей стороны мало/нет потерь, эти поля могут быть автоматически управляемы, и вы вряд ли будете спорить об используемом пространстве ... – Roba

+0

Это даже не реально для вас, как кодер, если вы не просмотрите его в базе данных, и незначительные накладные расходы для большой надежности. Наличие гарантированного уникального ключа в БД спасло мою задницу на протяжении многих лет больше, чем я могу рассчитывать. – FlipperPA