Django 2 DB 列作为 FK 到同一相关表

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

我有一张表“运动员”和另一张表“家长”。

表字段为:

ATHLETES

  reg_number
  first_name
  last_name
  gender 
  age_group (as FK to AgeGroup)
  parent_1 (as FK to Parents using related_name='parent_1')
  parent_2 (as FK to Parents using related_name='parent_2')

PARENTS

  first_name
  last_name
  email
  phone

我在管理控制台中可以使用此功能,我可以在其中为运动员添加父母。

我有一个表格,将显示每个运动员的相关父母。

问题正在尝试更新给定运动员的父项。 POST 具有parent_1 和parent_2 的正确ID,但我在浏览器中收到以下错误

ValueError at /save_athlete
Cannot assign "'1'": "Athletes.parent_1" must be a "Parents" instance.

POST 的有效负载中显示以下数据

  id: 1
  reg_number: 12345
  group: 2
  first_name: amy
  last_name: small
  gender: Female
  parent_1: 1
  parent_2: 2

我不明白这个错误,所以不确定在这里发布什么代码会有用。

我原以为表单验证时会接受

parent_1
parent_2
值 (
id
s),但它会在
views.py

中引发错误
django django-models django-views
1个回答
0
投票

外键接受

id
,但前提是它们的类型正确。如果您仔细查看错误消息:

Cannot assign "'1'": "Athletes.parent_1" must be a "Parents" instance.

您会看到

'1'
是一个字符串,而不是整数。我们看不到您的代码,但将其转换为
int
应该可以解决问题。

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