<p>最后,在花了一整天的时间讨论这个问题之后,我终于能够知道我在哪里犯了错误</p>
<p>在TestPersona模型中,有一个字段“name”,它是模型TestPersonaName的外键。这意味着TestPersonaName的对象将被分配给TestPersona的“name”字段。因此,答案是:</p>
<pre><code>def TestPageView(request):
x=PersonaSave(request)
persona_name = x[0]
persona_key = x[1]
persona_key_label=x[2]
persona_key_value=x[3]
persona_submit=x[4]
if(persona_name is None and persona_key is None and persona_key_label is None and persona_key_value is None):
# Since no paramteres are persent in GET request(i.e Nothing is filled in form), then we will simply render the blank form.
return render(request, 'dashboard/test_page.html')
# Below is the function for updating testPersona .
elif TestPersonaName.objects.filter(name__iexact=persona_name).exists():
testPersonaName_obj = TestPersonaName.objects.filter(name__iexact=persona_name) #Fetching an object from TestPersonaName model where name = persona_name
testpersonaSet = TestPersona.objects.filter(name=testPersonaName_obj) #Passing testPersonaName_obj to 'name' field of TestPersona model because name is foreign key.
for testpersona in testPersonaSet: #testPersonaSet is a QuerySet
if testpersona.key == persona_key: #Checking whether persona with given key is already present or not
# If TestPersona object with given name and give key is already present then we will update the details instead of making a new object.
testpersona.label= persona_key_label
testpersona.value = persona_key_value
testpersona.save()
return render(request,'dashboard/test_page.html')
#If persona with new name is detected then saving new objects of TestPersonaName and TestPersona object.
testPersonaName = TestPersonaName(name=persona_name)
testPersonaName.save()
testpersona(name=testPersonaName,key=persona_key,label=persona_key_label
,value=persona_key_value)
testpersona.save()
return render(request,'dashboard/test_page.html')
</code></pre>