django - Django询问实例而不是价值
问题描述
我有一个带有这些模型的 django 应用程序(仅相关字段):
class Device(models.Model):
serial = models.PositivewSmallIntegerField(unique=True, defeult=0000)
….
class Conexion(models.Model):
serial = models.ForeignKey(Device, to_field='serial', null=True, blank=True, on_delete=models.DO_NOTHING)
……
当我尝试在 Conexión 中为 serial 分配一个整数值时,django 要求提供一个 Device 实例。但这是错误的,因为我设置了 to_field='serial'。我在另一个模型中有完全相同的外键,它工作正常。
这是一个例外:
ValueError: Cannot assign "11": "Conexión.serial" must be a "Device" instance
解决方案
在 a 的情况下,Django 总是创建两个“孪生”字段field = ForeignKey(..)
:
- a
field
充当字段指向的对象Device
的惰性 getter 和 setter(因此在这种情况下s,而不是它们的“唯一标识符”);和 - a
field_id
具有存储在外键字段中的值。
因此,您应该在此处分配给field_id
,例如:
Conexion(serial_id=11)
推荐阅读
- kiwi-tcms - 默认语言英语并禁用翻译模式
- c# - 在 IIS 服务器上创建 X509Certificate2 对象时出错
- visual-studio-code - 使用父目录中的 jsconfig
- c - 如何在不冻结系统的情况下处理长中断
- javascript - angularjs 1.x 需要帮助,“长时间使用”
- reactjs - 在新选项卡中打开时如何访问通过链接元素传递的状态?
- javascript - 如何检测表单是否已提交?
- php - Laravel 项目链接上传后在 000webhost.com 上不起作用
- reactjs - 状态更改后在视频标签中添加控件属性
- python - 来自 Kafka 消息的日志偏移量、分区和主题