【发布时间】:2019-11-14 14:19:38
【问题描述】:
大家好,所以我有两个模型,其中一个有一个指向另一个的外键字段,我有每个模型类的模型表单,在我的 views.py 中,我想用外键点制作模型在另一个模型上
我在 forms.py 中创建了一个模型表单(CharacterForm 和 RoleForm),它会显示所有字段,但在我的 html 中,我会隐藏玩家字段(指向另一个模型的外键)所以在我的 views.py 中会自动使新创建的角色成为玩家。
models.py
class Character(models.Model):
#some fields
class Role(models.Model):
player = models.ForeignKey(Character, on_delete=models.PROTECT,
related_name='the_player')
views.py
def NewRole(request):
if request.method == 'POST'
form = CharacterForm()
formset = RoleForm()
if all([form.is_valid, formset.is_valid]):
role_player = form.save()
formset.player = role_player
formset.save()
return redirect('index')
else:
form = CharacterForm()
formset = RoleForm()
return render(request, 'new_role.html', {'form':form,
'formset':formset})
我只是希望角色模型下的玩家字段指向用户刚刚创建的角色模型,我不知道最好的方法。我认为这会起作用,但我不断收到 ForeignKey Constraint 错误。
【问题讨论】:
标签: django django-models django-forms django-views