Джанго думает, что у меня есть поле id, когда я не - PullRequest
0 голосов
/ 19 января 2019

Я создал следующую модель:

class World(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    name = models.CharField(max_length=200)
    setting = models.CharField(max_length=200)
    creation_date = models.DateTimeField('date created')

при запуске manage.py makemigrations я получаю следующую ошибку:

You are trying to add a non-nullable field 'id' to world without a default; we can't do that (the database needs something to populate existing rows).
Please select a fix:
 1) Provide a one-off default now (will be set on all existing rows with a null value for this column)
 2) Quit, and let me add a default in models.py

Почему Джанго считает, что у меня есть поле id,и как мне избавиться от этой ошибки?

1 Ответ

0 голосов
/ 19 января 2019

Я ранее установил поле идентификатора в своей модели Мира, это что-то сбивало с толку, так как я удалил его, я добавил строку:

id = models.AutoField(primary_key=True)

Когда я запустил makemitigrationsснова он спросил меня, переименовал ли я поле идентификатора в это новое, и я нажал «да», и это разобралось.

Моя модель теперь:

class World(models.Model):
    id = models.AutoField(primary_key=True)
    user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, default='')
    name = models.CharField(max_length=200)
    setting = models.CharField(max_length=200)
    creation_date = models.DateTimeField('date created')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...