Как работать с существующей базой данных SQL Server

#python #sql-server #django

#python #sql-сервер #django

Вопрос:

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

 from django.db import models


class TipoNovedad(models.Model):
    id_tnov = models.AutoField(db_column='Id_TNov', primary_key=True)  # Field name made lowercase.
    nom_nov = models.CharField(db_column='Nom_Nov', max_length=100)  # Field name made lowercase.
    desc_nov = models.CharField(db_column='Desc_Nov', max_length=250)  # Field name made lowercase.
    manejo_tiempo = models.CharField(db_column='Manejo_Tiempo', max_length=20)  # Field name made lowercase.
    dias = models.CharField(db_column='Dias', max_length=20, blank=True, null=True)  # Field name made lowercase.
    estado = models.BooleanField(db_column='Estado')  # Field name made lowercase.

    class Meta:
        db_table = 'Tipo_Novedad'


class Novedades(models.Model):
    id_nov = models.AutoField(db_column='Id_Nov', primary_key=True)  # Field name made lowercase.
    # is in the foreign key of the novelty model
    id_tnov = models.IntegerField(db_column='Id_TNov')  # Field name made lowercase.
    n_identificacion = models.CharField(db_column='N_Identificacion', max_length=20)  # Field name made lowercase.
    fec_registro = models.DateTimeField(db_column='Fec_Registro')  # Field name made lowercase.
    fec_inicio = models.DateField(db_column='Fec_Inicio', blank=True, null=True)  # Field name made lowercase.
    fec_fin = models.DateField(db_column='Fec_Fin', blank=True, null=True)  # Field name made lowercase.
    fec_nov = models.DateField(db_column='Fec_Nov', blank=True, null=True)  # Field name made lowercase.
    hora_inicio = models.CharField(db_column='Hora_Inicio', max_length=5, blank=True, null=True)  # Field name made lowercase.
    hora_fin = models.CharField(db_column='Hora_Fin', max_length=5, blank=True, null=True)  # Field name made lowercase.
    report_tm = models.BooleanField(db_column='Report_TM')  # Field name made lowercase.
    id_usuario_creacion = models.IntegerField(db_column='Id_Usuario_Creacion')  # Field name made lowercase.
    id_usuario_ultimaactualizacion = models.IntegerField(db_column='Id_Usuario_UltimaActualizacion')  # Field name made lowercase.
    id_sedenov = models.IntegerField(db_column='Id_SedeNov', blank=True, null=True)  # Field name made lowercase.
    id_estadonov = models.IntegerField(db_column='Id_EstadoNov')  # Field name made lowercase.
    observacion = models.TextField(db_column='Observacion', blank=True, null=True)  # Field name made lowercase.

    class Meta:
        db_table = 'Novedades'
 

Комментарии:

1. Эта ссылка может быть полезной docs.djangoproject.com/en/3.1/howto/legacy-databases

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

3. Если это работает, почему бы и нет?

4. да, это сработало, спасибо