我想使用来自另一个模型(项)的数据来修复一个模型表单(模型流)的初始值。虽然这似乎不管用。作为一个例子,喂入器需要由模型流提供燃料,我有这样的印象。我怎么解决这个问题
谢谢大家
型号.py:
class Item(models.Model):
feeder = models.CharField(max_length=100)
(…)
class Flow(models.Model):
feeder = models.ForeignKey(Item, default="None", on_delete=models.CASCADE)
(…)
视图.py:
def create_flow(request, itemslug):
a = Item.objects.get(slug=itemslug).feeder
if request.method == 'POST':
cf = FlowForm(request.POST)
if cf.is_valid():
instance_cf = cf.save(commit=False)
instance_cf.feeder = a
instance_cf = cf.save()
messages.success(request, 'Flow successfully added!')
return redirect('items:create_flow', itemslug =itemslug)
else:
cf = FlowForm()
return render(request, 'items/create_flow.html', {'cf': cf})
错误消息:
无法分配“'XXXX'”:“Flow.feeder”必须是“Item”实例
您正在将项目字段“feeder”的值赋给变量“a”,而不是实际的项目实例,然后尝试将此“a”变量(应为项目实例)赋给流上的字段,流上的字段是FK到项目模型(应将项目实例赋给它)
把它改成
同时
将文本值作为默认值指定给ForeignKey字段有点奇怪(这可能不仅仅是“奇怪”的,而且是不允许的)
你应该做些更像
或者符合你现在的习惯
我想你在理解FK的关系上有点困难
相关问题 更多 >
编程相关推荐