我有一个视图,我想传递一个变量到我的模板,但值总是作为无传递,如数字1,2和3所示。我做错了什么请你的帮助,我知道这是一个新手问题,实际上我是非常新手。
浏览量.py
def create_address(request, dni):
person = None
addresses = None
if request.method == 'POST':
form = CreateAddressForm(request.POST)
if form.is_valid():
try:
person = Persona.objects.get(numero_documento=dni)
addresses = Direccion.objects.filter(numero_documento=dni)
print(f'Persona: {person}') # this print person ID.
f = form.save(commit=False)
f.numero_documento = person
f.save()
messages.success(request,
'Dirección registrada con éxito.'
)
if 'save' in request.POST:
return HttpResponseRedirect(reverse('persons:list'))
if 'add_data' in request.POST:
return HttpResponseRedirect(reverse('persons:create_address', kwargs={'dni': dni}))
except Persona.DoesNotExist:
messages.error(
request,
'El número de DNI no existe en la base de datos.'
)
except Direccion.DoesNotExist:
addresses = None
messages.error(
request,
'No se ha registrado ninguna dirección.'
)
else:
messages.error(
request,
'No se pudo registrar la dirección.'
)
else:
form = CreateAddressForm()
template = 'persons/addresses/create_address.html'
context = {
'pre_title': 'Direcciones domiciliarias',
'person': person, # (2) The value of "person" is "None".
'form': form,
'addresses': addresses,
}
return render(request, template, context)
模板.html
(3) Value of "person" is "None".
<div class="tab-pane active show" id="tabs-address-data">
Number of ID is: {{ person }}
</div>
2条答案
按热度按时间mbyulnm01#
person
可能是用户。只有在以下情况下才能获取此用户:1.该
request.method == 'POST'
form.is_valid()
返回True与
addresses
相同-只有在上述两个条件为True时,才会在上下文中作为None
以外的内容返回。在函数的开头将两者都定义为
None
,因此如果None
值没有任何变化,它们将保持None
。在
GET
请求的情况下,person
和addresses
将保持None
,因为它们从未改变,这就是为什么您会看到None
对应person
。r6vfmomb2#
我已经修改了我的代码如下所示,谢谢你的回答.
我想知道我的算法现在是否正确。