Я хочу отключить автоматическое создание идентификатора в моделях Django. Можно ли это сделать? Как?Как отключить автоматическое создание идентификатора в Django?
ответ
Как уже упоминалось в ответе, вам нужно объявить первичный ключ на неавтоматическом поле. Например:
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
автоматически делает его уникальным и не нулевым. Удачи!
Да, это возможно. Но что, если я просто хочу сохранить подобный пользователь для элемента? Мне не нужен id для этого. –
Правильно, у вас могут быть прецеденты, в которых в ваших таблицах базы данных вы не идете с третьей формой нормализации, но если вам нужны эти таблицы, которые будут отображаться в Django в качестве моделей, вам нужно. С вашей стороны мало/нет потерь, эти поля могут быть автоматически управляемы, и вы вряд ли будете спорить об используемом пространстве ... – Roba
Это даже не реально для вас, как кодер, если вы не просмотрите его в базе данных, и незначительные накладные расходы для большой надежности. Наличие гарантированного уникального ключа в БД спасло мою задницу на протяжении многих лет больше, чем я могу рассчитывать. – FlipperPA
Объявите первичный ключ на своей модели (https://docs.djangoproject.com/en/1.8/ref/models/fields/#primary-key). Модели без идентификаторов не поддерживаются (AFAIK) – Roba
Да, это возможно. Но что, если я просто хочу сохранить подобный пользователь для элемента? Мне не нужен id для этого. –