Django - Как исправить модель с полем id - PullRequest
0 голосов
/ 09 марта 2020

Я случайно создал модель с полем «id» и выполнил миграцию. Модель сначала выглядела так:

class VsSession(models.Model):
    id = models.TextField(default="123"),
    state = models.CharField(choices=VSSESSION_CHOICES, default='dead', max_length=10)

Впоследствии я переименовываю поле в vs_session:

class VsSession(models.Model):
    vs_session = models.TextField(default="123"),
    state = models.CharField(choices=VSSESSION_CHOICES, default='dead', max_length=10)

Теперь, когда я пытаюсь использовать модель, например, вот так:

def get(self, request):
    try:
        sessionid = uuid.uuid4()
        new_session = VsSession(vs_session=sessionid, state="active")
        new_session.save()

        return Response({'success': 'true', 'vssession': sessionid})
    except Exception as e:
        print(str(e))
        return Response({'success': 'false'})

Я получаю эту ошибку:

VsSession() got an unexpected keyword argument 'vs_session'

Может кто-нибудь сказать, пожалуйста, что я сделал не так и как это исправить.

Большое спасибо!

Ответы [ 2 ]

1 голос
/ 09 марта 2020

Так что я понятия не имею, почему это работает сейчас, но я исправил это. То, что я сделал, это

  1. Удалена переменная vs_session из модели
  2. Добавлен create_at = models.DateTimeField (auto_now_add = True) в модель
  3. makemigration и миграция
  4. Выполнить код / ​​стоп-код
  5. Добавить переменную vs_session в модель
  6. makemigration a migrate
  7. Все отлично:)
0 голосов
/ 09 марта 2020

Вы пробовали запустить python manage.py makemigrations? После запуска вы должны увидеть сообщение о том, что поле было переименовано. Чтобы применить миграцию к вашей базе данных, вы можете запустить python manage.py migrate

...