django -import-export error при импорте данных в базу данных - PullRequest
0 голосов
/ 02 марта 2020

Вот СС ошибки импорта

А это СС файла CSV

    Line number: 1 - 'id'
    Traceback (most recent call last):
    File "/home/carlmark/Desktop/Final/realtyredefine/env/lib/python3.6/site- 
    packages/import_export/resources.py", line 500, in import_row
    instance, new = self.get_or_init_instance(instance_loader, row)
    File "/home/carlmark/Desktop/Final/realtyredefine/env/lib/python3.6/site- 
    packages/import_export/resources.py", line 277, in get_or_init_instance
    instance = self.get_instance(instance_loader, row)
    File "/home/carlmark/Desktop/Final/realtyredefine/env/lib/python3.6/site- 
    packages/import_export/resources.py", line 266, in get_instance
    self.fields[f] for f in self.get_import_id_fields()
    File "/home/carlmark/Desktop/Final/realtyredefine/env/lib/python3.6/site- 
    packages/import_export/resources.py", line 266, in <listcomp>
    self.fields[f] for f in self.get_import_id_fields()
    KeyError: 'id'
models.py

class PropertyModel(models.Model):
    Created_By = models.ForeignKey(User, default=1, null=True, on_delete=models.SET_NULL)
    Created_Date = models.DateTimeField(default=timezone.now)
    Serial_No = models.IntegerField()
    Property_ID = models.CharField(primary_key=True, max_length=15)
    Last_Updated_By = models.CharField(max_length=20, null=True, blank=True)
    Last_Updated_On = models.DateTimeField(null=True, blank=True)
    Hot = models.BooleanField(null=True, blank=True, default=False)
    Shared_Website = models.BooleanField(null=True, blank=True, default=False)
    MCG_Property_Code = models.CharField(max_length=20, null=True, blank=True)
    File_Name = models.CharField(max_length=20, null=True, blank=True)
    Picture_Attached = models.ImageField(upload_to='images', null=True, blank=True)
    # Project_info
    Land_Use = models.CharField(max_length=25, choices=land_choice, null=True, blank=True)
    Construction_Completion_Date = models.DateTimeField(null=True, blank=True)
    Project_Structure = models.CharField(max_length=25, choices=structure_choice, null=True, blank=True)
    Project_ID = models.CharField(max_length=20, null=True, blank=True)
    Project_Name = models.CharField(max_length=25, null=True, blank=True)
    Possession_Status = models.CharField(max_length=20, choices=possession_choice)
    Total_Plot_Area = models.CharField(max_length=10, null=True, blank=True)
    Unit_Plot_Area = models.CharField(max_length=20, null=True, blank=True, choices=unit_choice)
    Plot_No = models.CharField(max_length=10, null=True, blank=True)
    Total_Floor = models.CharField(max_length=2, null=True, blank=True)
    # Property Info
    Property_Status = models.CharField(max_length=20, choices=prop_status_choice)
    Property_For = models.CharField(max_length=20, choices=prop_for_choice)
    Calling_Update = models.CharField(max_length=20, null=True, blank=True, choices=calling_choice)
    Property_Type = models.CharField(max_length=15, choices=prop_type_choice)
    Property_Sub_Type = models.CharField(max_length=25, choices=prop_sub_type_choice)
    Property_Use = models.TextField()
    # Address
    Full_Address = models.TextField(null=True, blank=True)
    Building_Name = models.CharField(max_length=20, null=True, blank=True)
    Wing = models.CharField(max_length=20, null=True, blank=True)
    Unit_No = models.CharField(max_length=20, null=True, blank=True)
    Floor = models.CharField(max_length=20, null=True, blank=True)
    Block = models.CharField(max_length=20, null=True, blank=True)
    Landmark = models.CharField(max_length=20, null=True, blank=True)
    # All Locality
    All_Locality = models.TextField(null=True, blank=True)
    Road = models.CharField(max_length=20, null=True, blank=True)
    Colony = models.CharField(max_length=20, null=True, blank=True)
    Locality_1 = models.CharField(max_length=20, null=True, blank=True)
    Locality_2 = models.CharField(max_length=20, null=True, blank=True)
    Sector = models.CharField(max_length=20, choices=sector_choice, null=True, blank=True)
    Area = models.CharField(max_length=20, null=True, blank=True)
    City = models.CharField(max_length=15, choices=city_choioce)
    State = models.CharField(max_length=20, choices=state_choice)
    Country = models.CharField(max_length=10, choices=country_choice)
    Pin_Code = models.CharField(max_length=20, null=True, blank=True)
    # Owner Details
    Owner_ID = models.CharField(max_length=20, null=True, blank=True)
    Owner_Full_Name = models.TextField(null=True, blank=True)
    Owner_All_Contact = models.TextField(null=True, blank=True)
    Owner_Source_Type = models.CharField(max_length=20, null=True, blank=True, choices=owner_source_choice)
    Owner_Company_Name = models.CharField(max_length=20, null=True, blank=True)
    Owner_Name = models.CharField(max_length=50)
    Owner_Mobile = models.CharField(max_length=15)
    Owner_Home_Landline = models.CharField(max_length=15, null=True, blank=True)
    Owner_Office_Landline = models.CharField(max_length=15, null=True, blank=True)
    Owner_Alternative_No1 = models.CharField(max_length=15, null=True, blank=True)
    Owner_Alternative_No2 = models.CharField(max_length=15, null=True, blank=True)
    Owner_Alternative_No3 = models.CharField(max_length=15, null=True, blank=True)
    Owner_Email = models.EmailField(null=True, blank=True)
    Owner_Address = models.TextField(null=True, blank=True)
    Owner_Representative_Name = models.CharField(max_length=20, null=True, blank=True)
    Owner_Representative_No = models.CharField(max_length=15, null=True, blank=True)
    Owner_Caretaker_Name = models.CharField(max_length=20, null=True, blank=True)
    Owner_Caretaker_No = models.CharField(max_length=15, null=True, blank=True)
    Co_Owner_Name = models.CharField(max_length=20, null=True, blank=True)
    Co_Owner_No = models.CharField(max_length=15, null=True, blank=True)
    Owner_Comment = models.TextField(null=True, blank=True)
    # Area
    Super_Area_Min = models.CharField(max_length=10, null=True, blank=True)
    Super_Area_Max = models.CharField(max_length=10)
    Unit_Area = models.CharField(max_length=10, choices=unit_choice)
    Maintainance_Charge_PSF = models.CharField(max_length=10, null=True, blank=True)
    Maintainance_Charge_Min_Rs = models.CharField(max_length=10, null=True, blank=True)
    Maintainance_Charge_Max_Rs = models.CharField(max_length=10, null=True, blank=True)
    Efficiency = models.CharField(max_length=3, null=True, blank=True)
    Covered_Area_Min = models.CharField(max_length=10, null=True, blank=True)
    Covered_Area_Max = models.CharField(max_length=10, null=True, blank=True)
    Expected_Rent_PSF = models.IntegerField()
    Expected_Rent_Min_Rs = models.IntegerField()
    Expected_Rent_Max_Rs = models.IntegerField()
    For_Sale = models.BooleanField(null=True, blank=True, default=False)
    Sale_Price_PSF = models.IntegerField()
    Sale_Price_Min_Rs = models.IntegerField()
    Sale_Price_Max_Rs = models.IntegerField()
    # Aminities
    All_Aminities = models.TextField(null=True, blank=True)
    Aminities_1 = models.CharField(max_length=20, null=True, blank=True)
    Aminities_2 = models.CharField(max_length=20, null=True, blank=True)
    Aminities_3 = models.CharField(max_length=20, null=True, blank=True)
    Aminities_4 = models.CharField(max_length=20, null=True, blank=True)
    Aminities_5 = models.CharField(max_length=20, null=True, blank=True)
    Aminities_6 = models.CharField(max_length=20, null=True, blank=True)
    Aminities_7 = models.CharField(max_length=20, null=True, blank=True)
    # Property Details
    Vastu = models.CharField(max_length=15, null=True, blank=True, choices=vastu_choice)
    Furnishing_Type = models.CharField(max_length=25, choices=furn_type_choice, null=True, blank=True)
    Furnishing_Quality = models.CharField(max_length=15, null=True, blank=True, choices=furn_quality_choice)
    Property_Available = models.CharField(max_length=20, choices=prop_avail_choice, null=True, blank=True)
    Property_Remarks_Internal = models.TextField(null=True, blank=True)
    Property_Remarks_External = models.TextField(null=True, blank=True)
    # Furnishing Details
    Furnishing_Detail = models.TextField(null=True, blank=True)
    Property_Condition = models.CharField(max_length=20, null=True, blank=True)
    Cabin_No = models.CharField(max_length=3, null=True, blank=True)
    Workstation_No = models.CharField(max_length=5, null=True, blank=True)
    Car_Parking_No = models.CharField(max_length=3, null=True, blank=True)
    Conference_No = models.CharField(max_length=3, null=True, blank=True)
    Pantry = models.CharField(max_length=3, null=True, blank=True)
    Server_Room = models.CharField(max_length=3, null=True, blank=True)
    Meeting_Room = models.CharField(max_length=3, null=True, blank=True)
    Cubical = models.CharField(max_length=3, null=True, blank=True)
    Keys_With = models.CharField(max_length=20, null=True, blank=True)
    # eXtra
    Internal_Comments = models.TextField(null=True, blank=True)
    External_Comments = models.TextField(null=True, blank=True)
    Assigned_Manger = models.CharField(max_length=20, choices=manager_choice)
    Group = models.CharField(max_length=20, choices=group_choice)
    Teams = models.CharField(max_length=20, choices=team_choice)
    Source_Channel = models.CharField(max_length=20, choices=source_channel_choice)
    Sub_Source_Channel = models.CharField(max_length=20, choices=sub_source_choice)
    # Pre-rented
    Pre_Rented = models.BooleanField(null=True, blank=True, default=False)
    Company_Name = models.CharField(max_length=20, null=True, blank=True)
    Pre_Rented_Area_Min = models.CharField(max_length=10, null=True, blank=True)
    Pre_Rented_Area_Max = models.CharField(max_length=10, null=True, blank=True)
    ROI = models.CharField(max_length=3)
    Sale_Price_Pre_Rented_PSF = models.IntegerField()
    Sale_Price_Pre_Rented_Min_Rs = models.IntegerField()
    Sale_Price_Pre_Rented_Max_Rs = models.IntegerField()
    Sale_Remark = models.TextField(null=True, blank=True)
    # Lease Terms
    Lease_Start = models.DateTimeField(null=True, blank=True)
    Possession_Date = models.DateTimeField(null=True, blank=True)
    Lease_Period = models.CharField(max_length=20, null=True, blank=True)
    Security_Deposit = models.CharField(max_length=10)
    Lock_in_Period = models.CharField(max_length=3)
    Monthly_Rent_Min_Rs = models.CharField(max_length=10, null=True, blank=True)
    Monthly_Rent_Max_Rs = models.CharField(max_length=10, null=True, blank=True)
    Rent_Escalation = models.CharField(max_length=3)
    Pre_Rented_Remark = models.TextField(null=True, blank=True)
    # Remaining
    Extra1 = models.CharField(max_length=20, null=True, blank=True)
    Extra2 = models.CharField(max_length=20, null=True, blank=True)
    Extra3 = models.CharField(max_length=20, null=True, blank=True)
    Extra4 = models.CharField(max_length=20, null=True, blank=True)
    Attachement = models.CharField(max_length=20, null=True, blank=True)
    Video_Link = models.CharField(max_length=20, null=True, blank=True)

    objects = PropertyManager()

    class Meta:
        verbose_name_plural = "Properties"
        ordering = ['-Created_Date']

    def __str__(self):
        return self.Property_ID

admini.py

@admin.register(PropertyModel)
class PropertyAdmin(ImportExportModelAdmin):
    list_display = ['Property_ID', 'Created_By', 'Last_Updated_By']

Я пытаюсь импортировать данные из файла CSV в мою базу данных Django, но всякий раз, когда я пытался импортировать, я получал "KeyError: 'id'", хотя в моей модели нет поля "id". У меня эта проблема только при использовании PostgreSQL, нет ошибки при импорте тех же данных в sqlite3.

1 Ответ

0 голосов
/ 02 апреля 2020

У меня были такие ошибки, как у вас, и мне удалось их исправить после этого ответа - https://github.com/django-import-export/django-import-export/issues/92#issuecomment -598009569

Я перешел с версии 2.0.2 на 2.0.1, удалил кастом первичный ключ и снова мигрировал

Я надеюсь, что это поможет с вашей проблемой

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...