models.py:
class FloorPlan(NaturalKeyModel):
name = models.CharField(max_length=100, null=False, unique=True)
stories = models.CharField(max_length=10, null=True, default=Single)
class FloorPlanFacade(models.Model):
floorplan_name = models.ForeignKey(FloorPlan, on_delete=models.CASCADE, null=False)
name = models.CharField(max_length=100, null=False)
image = models.ImageField(upload_to='floorplanfacade_images/%Y/%m/%d/')
wizard.py
class FloorPlanFacadeSerializer(NaturalKeyModelSerializer):
class Meta:
model = FloorPlanFacade
fields = "all"
Excel spreadsheet, Facade.xls
floorplan_name, name, image
On Admin -> Data Wizard - Sources -> Import via data wizard,
After mapping columns, I have to manually match floorplan_name column with values in FloorPlan, instead of searching natural key automatically.
However, if I added FloorPlan model with unqiue_together, the foreign key values are automatically matched with columns.
class FloorPlan(NaturalKeyModel):
name = models.CharField(max_length=100, null=False, unique=True)
stories = models.CharField(max_length=10, null=True, default=Single)
class Meta:
unique_together = (('floorplan_name', 'name'),)
models.py:
class FloorPlan(NaturalKeyModel):
name = models.CharField(max_length=100, null=False, unique=True)
stories = models.CharField(max_length=10, null=True, default=Single)
class FloorPlanFacade(models.Model):
floorplan_name = models.ForeignKey(FloorPlan, on_delete=models.CASCADE, null=False)
name = models.CharField(max_length=100, null=False)
image = models.ImageField(upload_to='floorplanfacade_images/%Y/%m/%d/')
wizard.py
class FloorPlanFacadeSerializer(NaturalKeyModelSerializer):
class Meta:
model = FloorPlanFacade
fields = "all"
Excel spreadsheet, Facade.xls
floorplan_name, name, image
On Admin -> Data Wizard - Sources -> Import via data wizard,
After mapping columns, I have to manually match floorplan_name column with values in FloorPlan, instead of searching natural key automatically.
However, if I added FloorPlan model with unqiue_together, the foreign key values are automatically matched with columns.
class FloorPlan(NaturalKeyModel):
name = models.CharField(max_length=100, null=False, unique=True)
stories = models.CharField(max_length=10, null=True, default=Single)