Django模型save()未插入新记录

问题描述 投票:1回答:1

我有一个问题,即多对多模型上的save方法未插入数据库:

try:
    dnpg = Device_Name_Product_Group_XREF.objects.get(
        device_name=dn,
        product_group = product_group
    )
except Device_Name_Product_Group_XREF.DoesNotExist:
    dnpg = Device_Name_Product_Group_XREF(
        device_name=dn,
        product_group=product_group
    )

dnpg.save()

# this prints: {'product_group': 1992L, 'device_name': 6481L}
print model_to_dict(dnpg)

上面的代码应在XREF表中插入一条带有值(1992,6481)的记录,但事实并非如此。这是我的模型定义:

class Device_Name_Product_Group_XREF(models.Model):
    device_name = models.ForeignKey(Device_Name, primary_key=True, to_field = "id", db_column="DEVICE_NAME_ID")
    product_group = models.ForeignKey(Product_Group, primary_key=True, to_field = "id", db_column="PRODUCT_GROUP_ID")

    class Meta:
        db_table = 'ADMIN_DEVICE_NAMES_PRODUCT_GROUP_XREF'
        managed = False

有什么想法吗?

python mysql django
1个回答
1
投票

您可以使用get_or_create代替try / except的构造。

© www.soinside.com 2019 - 2024. All rights reserved.