【发布时间】:2019-11-14 03:29:18
【问题描述】:
我正在尝试创建一个对象并从输入字段分配一个外键,但我遇到了一个奇怪的错误,我尝试使用 id 分配它,名称但似乎没有任何工作,任何帮助都会非常感激。 这是模型:
class Node(MPTTModel):
parent = TreeForeignKey('self', on_delete=models.CASCADE, blank=True, null=True, related_name='children')
name = models.TextField(blank=True, null=True)
这是表单域:
<input type="hidden" name="parent" value="{{ current_tree }}" />
这是视图:
get_node_parent = request.POST.get('parent', '').strip()
Node.objects.create(parent=get_node_parent)
每次我尝试创建模型时,我都会收到消息说它必须是一个节点实例。
【问题讨论】:
-
为什么这是一个奇怪的错误?
parent应该是Node(因为它是Node的 fk),那么您为什么希望使用字符串? -
嘿,Willem,我没有使用字符串,'get_node_parent' 的输出实际上是一个节点,所以我不明白为什么会出现这个错误。
-
但是
POST本质上是一个将字符串映射到字符串的字典,所以get_node_parent是一个字符串。 -
我认为我在这里遗漏了一些东西,你知道我如何才能实现我想要做的事情,因为我是 django 的新手并且我很难让它工作。
-
究竟什么是
{{ current_tree }},你的Node的名字?是主键吗?
标签: django-models foreign-keys