Как импортировать файлы Excel в Django, который имеет внешний ключ? - PullRequest
1 голос
/ 03 апреля 2019

Я пытаюсь импортировать файл Excel через администратор django (Импорт-экспорт). У меня есть две таблицы. Бренд мастер и товар мастер. Я использую Brand Master в качестве внешнего ключа в Item master. Когда я загружаю мастер-файл бренда, он загружается. Но когда я пытаюсь импортировать Item master, возникает проблема Ниже модель.

from django.db import models

class Sales(models.Model):
    Invoice_Date = models.CharField(max_length = 20, db_column = 'Invoice Date')
    Sales_Value = models.CharField(max_length = 20, db_column = 'Sales Value')

class BrandMaster(models.Model):
    Line_cd = models.CharField(max_length = 10, db_column = 'Line cd')
    Ver_name = models.CharField(max_length = 30, db_column = 'Ver name')
    Brand_man = models.CharField(max_length = 30, db_column = 'Brand man')
    Exec_HR = models.CharField(max_length = 40, db_column = 'Exec HR')
    Cat_man = models.CharField(max_length = 20, db_column = 'Cat man')

    def __str__(self):
            return self.Line_Code

class ItemMaster(models.Model):
    Brand_Master = models.ForeignKey(BrandMaster, on_delete=models.CASCADE)
    Line_Code = models.CharField(max_length = 10, db_column = 'Line cd')
    Item_ID = models.CharField(max_length = 30, db_column = 'Item ID')
    Item_Name = models.CharField(max_length = 30, db_column = 'Item Name')

    def __str__(self):
            return self.Line_Code

Это файл admin.py.

from django.contrib import admin
from .models import Sales,BrandMaster,ItemMaster

from import_export import resources
from import_export import fields
from import_export.admin import ImportExportModelAdmin
from import_export.widgets import ForeignKeyWidget

class SalesResource(resources.ModelResource):
    id = fields.Field(attribute='id', column_name='id')
    Invoice_Date = fields.Field(attribute='Invoice_Date', column_name='Invoice Date')
    Sales_Value = fields.Field(attribute='Sales_Value', column_name='Sales Value')

    class Meta:
        model = Sales

class SalesAdmin(ImportExportModelAdmin):
    resource_class = SalesResource

class BrandMasterResource(resources.ModelResource):
    id = fields.Field(attribute='id', column_name='id')
    Line_cd = fields.Field(attribute='Line_cd', column_name='Line cd')
    Ver_name = fields.Field(attribute='Ver_name', column_name='Ver name')
    Brand_man = fields.Field(attribute='Brand_man', column_name='Brand man')
    Exec_HR = fields.Field(attribute='Exec_HR', column_name='Exec HR')
    Cat_man = fields.Field(attribute='Cat_man', column_name='Cat man')

    class Meta:
        model = BrandMaster

class BrandMasterAdmin(ImportExportModelAdmin):
    resource_class = BrandMasterResource

class ItemMasterResource(resources.ModelResource):
    id = fields.Field(attribute='id', column_name='id')
    Line_cd = fields.Field(attribute='Line_cd', column_name='Line cd')
    Item_ID = fields.Field(attribute='Item_ID', column_name='Item ID')
    Item_Name = fields.Field(attribute='Item_Name', column_name='Item Name')

    class Meta:
        model = ItemMaster

class ItemMasterAdmin(ImportExportModelAdmin):
    resource_class = ItemMasterResource

admin.site.register(Sales, SalesAdmin)
admin.site.register(BrandMaster, BrandMasterAdmin)
admin.site.register(ItemMaster, ItemMasterAdmin)

Когда я пытаюсь импортировать файл Excel для таблицы "ItemMaster", он показывает, что Brand_Master_id не может быть пустым. Администратор Также в моей БД для таблицы itemmaster создается столбец с именем Brand_master_id. Просьба помочь решить эту проблему

DB спасибо

...