Возникли проблемы при переносе изменений в базу данных - Python / Django - PullRequest
0 голосов
/ 07 мая 2020

Я вносил некоторые изменения в базу данных в моем проекте, но у меня возникли некоторые проблемы, похоже, это не столбец в одной из моих таблиц, но он есть, не знаю, что может быть причиной проблемы , я не уверен, должно ли это быть связано с отношениями между одним полем или из-за того, что его полностью разрушили.

Модели

from django.db import models

# Create your models here.

class BloodType(models.Model):
    Tipo = models.CharField(max_length=100)

    def __str__(self):
        return self.Tipo


class Gender(models.Model):
    Genero = models.CharField(max_length=100)

    def __str__(self):
        return self.Genero

class Nationality(models.Model):
    Nacionalidad = models.CharField(max_length=100)

    def __str__(self):
        return self.Nacionalidad

class CivilStatus(models.Model):
    Estado = models.CharField(max_length=100)

    def __str__(self):
        return self.Estado

class InsuranceCompany(models.Model):
    Compania = models.CharField(max_length=200)

    def __str__(self):
        return self.Compania

class Policy(models.Model):
    Tipo_Poliza = models.CharField(max_length=256)

    def __str__(self):
        return self.Tipo_Poliza

class Insurance(models.Model):
    Aseguradora = models.OneToOneField(InsuranceCompany,on_delete=models.DO_NOTHING)
    Tipo_de_Poliza =  models.OneToOneField(Policy, on_delete=models.DO_NOTHING)
    Numero_de_poliza = models.CharField(max_length=100)
    Vencimiento = models.DateField()

    def __str__(self):
        return str(self.Aseguradora) + ' ' + str(self.Tipo_de_Poliza)

class Patient(models.Model):
    Codigo = models.CharField(max_length=15)
    Nombre = models.CharField(max_length=100)
    Apellidos = models.CharField(max_length=200)
    Fecha_Nacimiento = models.DateField()
    Telefono = models.CharField(max_length=25,blank=True)
    Correo = models.EmailField(blank=True)
    Expediente = models.CharField(max_length=200, blank=True)
    Tipo_sangre = models.OneToOneField(BloodType,on_delete=models.DO_NOTHING)
    Peso = models.PositiveIntegerField()
    Estatura = models.PositiveIntegerField()
    Genero = models.OneToOneField(Gender,on_delete=models.DO_NOTHING)
    Nacionalidad = models.OneToOneField(Nationality,on_delete=models.DO_NOTHING)
    Estado_civil = models.OneToOneField(CivilStatus,on_delete=models.DO_NOTHING)
    Ocupacion = models.CharField(max_length=100,blank=True)
    Lugar_de_procedencia = models.CharField(max_length=100)
    Lugar_de_residencia = models.CharField(max_length=100)
    Seguro = models.OneToOneField(Insurance,on_delete=models.DO_NOTHING,default='No tiene seguro.')

    def __str__(self):
        return self.Nombre + ' ' + self.Apellidos

Ошибка

OperationalError at /admin/patients/patient/
no such column: patients_patient.Seguro_id
Request Method: GET
Request URL:    http://127.0.0.1:8000/admin/patients/patient/
Django Version: 2.2.12
Exception Type: OperationalError
Exception Value:    
no such column: patients_patient.Seguro_id
Exception Location: /Users/lralcocer/PycharmProjects/MedTracker/venv/lib/python3.5/site-packages/django/db/backends/sqlite3/base.py in execute, line 383
Python Executable:  /Users/lralcocer/PycharmProjects/MedTracker/venv/bin/python
Python Version: 3.5.0
Python Path:    
['/Users/lralcocer/PycharmProjects/MedTracker/medtracker',
 '/Library/Frameworks/Python.framework/Versions/3.5/lib/python35.zip',
 '/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5',
 '/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/plat-darwin',
 '/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/lib-dynload',
 '/Users/lralcocer/PycharmProjects/MedTracker/venv/lib/python3.5/site-packages']
Server time:    Thu, 7 May 2020 06:53:16 +0000

Команды Ошибки

 #Make Migrations
(venv) MacBook-Pro:medtracker lralcocer$ python manage.py makemigrations patients
No changes detected in app 'patients'

#Python manage.py migrate
ValueError: invalid literal for int() with base 10: 'UNDEFINED'

1 Ответ

1 голос
/ 07 мая 2020

Часто Django не может обнаружить, что вы изменили тип поля (например, при изменении первичного ключа внешние ключи останутся со старым типом). У меня нет лучшего решения, но если у вас нет важных данных в этом поле, оно должно работать:

  1. Удалить поле из модели.
  2. Удалить последний файл миграции (который вызывает ошибку.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...