Sql Django外键字段和限制选项
我正在通过python脚本将数据从XML文件导入Django group_sku的格式为“GROUP123” 产品sku的格式为“GROUP123-BLUE-M”(或类似),每个组中有多个产品 如何定义外键关系,以便每个产品都链接到其各自的ProductGroup?或者,如果我完全走错了方向,请随时告诉我Sql Django外键字段和限制选项,sql,django,Sql,Django,我正在通过python脚本将数据从XML文件导入Django group_sku的格式为“GROUP123” 产品sku的格式为“GROUP123-BLUE-M”(或类似),每个组中有多个产品 如何定义外键关系,以便每个产品都链接到其各自的ProductGroup?或者,如果我完全走错了方向,请随时告诉我 使用Django 1.6.5、Python 2.7和MySQL,模型的定义应如下所示。产品组字段的ForeignKey为group,表示产品属于组 class ProductGroup(mod
使用Django 1.6.5、Python 2.7和MySQL,模型的定义应如下所示。产品组字段的ForeignKey为group,表示产品属于组
class ProductGroup(models.Model):
group_sku = models.CharField(unique=True, max_length=255)
brand = models.CharField(max_length=255)
...
class Product(models.Model):
product_sku = models.CharField(unique=True, max_length=255)
color = models.CharField(max_length=255)
size = models.CharField(max_length=255)
product = models.ForeignKey(Product, limit_choices_to=Q(group_sku__in=product_sku))
...
在脚本中,您应该首先获取所有组并创建它们,然后解析(可以使用正则表达式)产品sku以了解它属于哪个组。你必须有类似的东西:
class ProductGroup(models.Model):
group_sku = models.CharField(unique=True, max_length=255)
brand = models.CharField(max_length=255)
...
class Product(models.Model):
product_sku = models.CharField(unique=True, max_length=255)
color = models.CharField(max_length=255)
size = models.CharField(max_length=255)
group = models.ForeignKey(Group)
非常感谢…整个下午我都在绞尽脑汁想这个。我真的不明白ForeignKey字段是如何工作的。现在我知道了!
# save group
group = Group(group_sku=group_sku_from_xml, ...)
group.save()
# later that script...
group_sku = get_group_from(product_sku_from_xml)
group = Group.objects.get(group_sku=group_sku)
# save product
product = Product(group=group, product_sku=product_sku_from_xml, ...)
product.save()