给外键赋值就报错了看看这么个事

scwuliao.wl中的wl为scwuliao的外键,dingdan为主表想问一下这是什么错误和

img

仅根据有限的提示,猜测:

你这个物料表中的外键,scwuliao.wl,需要赋值的数据类型必须是,dingdan(订单?)的一个实例,但你现在却赋值的是 '1' (str类型。)

本文由 大侠(AhcaoZhu)原创,转载请声明。
链接: https://blog.csdn.net/Ahcao2008

Alt

补充回答:

wl= models.ForeignKey(to=dingdan,on_delete=models.CASCADE, to_field='...')

确认:
1)dingdan 表设置正确(从截图看,这个变量指向的dingdan至少没报错),并设置正确可作为外键的字段属性。
2)models.ForeignKey需指定表和字段,除非表只有一个字段,且为索引字段。(或者两链接表具有同名的索引字段?没验证过,不确定)

这个是创建表的代码

img

该回答引用GPTᴼᴾᴱᴺᴬᴵ
这个错误表明您尝试将一个字符串 'I' 赋值给 scwuliao.wl 这个外键,但是Django希望在这里赋值一个 dingdan 的实例,而不是一个字符串。

你需要将字符串 'I' 转换为一个 dingdan 实例,并将其赋值给 scwuliao.wl。具体来说,您需要从数据库中检索一个 dingdan 实例,然后将其作为 scwuliao.wl 的值进行赋值,如下所示:

from your_app.models import scwuliao, dingdan

# 获取dingdan实例
dingdan_instance = dingdan.objects.get(some_field=some_value)

# 创建一个新的scwuliao实例,并将其wl外键设置为dingdan实例
scwuliao_instance = scwuliao.objects.create(wl=dingdan_instance)

# 或者,如果您已经有了scwuliao实例,并且希望将其wl外键设置为dingdan实例,可以这样做:
scwuliao_instance.wl = dingdan_instance
scwuliao_instance.save()


请注意,上面的代码示例仅供参考,您需要根据自己的代码和模型进行适当修改。