Django,postgres error:column " " of relation " " does not exist

У меня есть 3 таблицы:

event,event_type,patient

и event_type, и patient являются внешними ключами для таблицы event.

event fields:id, event_type(foreign key),event_unit, event_value,event_time, patient(foreign key)

event_type fields: id, type_name

patient fields : patient_id ,patient_name

Я использовал Django для создания таблиц:

class Event_type(models.Model):
        type_name = models.CharField(max_length=40,null=True,unique=True)
        


class Patient(models.Model):
    patient_id = models.AutoField(unique=True, primary_key=True)  # patient identification
    patient_name = models.CharField(max_length=30, unique=True, verbose_name='patient_name')

    
class Event(models.Model):
    event_id = models.AutoField(unique=True, primary_key=True)
    event_type = models.ForeignKey(Event_type, null=True, blank=True,on_delete=models.CASCADE,
                                   verbose_name='event type',default="",to_field='type_name'
                                   )
    event_value = models.PositiveIntegerField(default=0, verbose_name='even value', blank=True)
    event_unit = models.CharField(max_length=100, blank=True,
                                  verbose_name='event unit')
    event_time = models.DateTimeField(auto_now=False, verbose_name='event time')
    patient = models.ForeignKey(verbose_name='patient', to='Patient', to_field='patient_id', on_delete=models.CASCADE,default="")

и у меня есть файл csv events.csv:

import csv
with open(r'/Users/williaml/Downloads/events.csv') as csvfile: 
    spamreader = csv.reader(csvfile, delimiter=',' ,quotechar=' ')
    for row in spamreader:
        print(row)

вывод:

['"PATIENT ID', 'PATIENT NAME', 'EVENT TYPE', 'EVENT VALUE', 'EVENT UNIT', 'EVENT TIME"']
['"1', 'Jane', 'HR', '82', 'beats/minute', '2021-07-07T02:27:00Z"']
['"1', 'Jane', 'RR', '5', 'breaths/minute', '2021-07-07T02:27:00Z"']
['"2', 'John', 'HR', '83', 'beats/minute', '2021-07-07T02:27:00Z"']
['"2', 'John', 'RR', '14', 'breaths/minute', '2021-07-07T02:27:00Z"']
['"1', 'Jane', 'HR', '88', 'beats/minute', '2021-07-07T02:28:00Z"']
['"1', 'Jane', 'RR', '20', 'breaths/minute', '2021-07-07T02:28:00Z"']
['"2', 'John', 'HR', '115', 'beats/minute', '2021-07-07T02:28:00Z"']
['"2', 'John', 'RR', '5', 'breaths/minute', '2021-07-07T02:28:00Z"']

Теперь я хочу вставить эти строки в базу данных:

    import psycopg2
    conn = psycopg2.connect(host='localhost', dbname='patientdb',user='username',password='password',port='')
    cur = conn.cursor()

    import csv
    with open(r'/Users/williaml/Downloads/events.csv') as csvfile: 
        spamreader = csv. DictReader(csvfile, delimiter=',' ,quotechar=' ')
        for row in spamreader:
                   cur.execute("""INSERT INTO patients_event (patient_id, type_name , event_value ,event_unit, event_time) VALUES 
  (row['PATIENT ID'],row['EVENT TYPE'],row['EVENT VALUE'],
   row['EVENT UNIT'],row['EVENT TIME'])""")

Полученная ошибка:

psycopg2.errors.UndefinedColumn: column "type_name" of relation "patients_event" does not exist
LINE 1: INSERT INTO patients_event (patient_id, type_name , event_va...

Есть ли друзья, которые могут помочь?

Вернуться на верх