从数据库填充表单:简写打印/如果AND连接

时间:2016-05-26 00:03:11

标签: python django templates

所以即时编写一个编辑表单,基本上即时显示表单,如果用户已填写它,我想用数据库存储值填充from

我的观点:

def edit(request):
    try:
       account =  Accounts.objects.get(user=request.user.id)
    except Accounts.DoesNotExist :
        account = False
    return render(request , 'account/edit.html' , {'cuAcc':account})

所以在我的模板中,我有名字

 <input type="text" name="name" value="">

如果存在,我想用数据库存储名称填充它,所以我试过这些

 <input type="text" name="name" value="{{ cuAcc.name if cuAcc else '' }}">

没有工作

 <input type="text" name="name" value="{{ cuAcc.name or '' }}">

也没有用,iof发现了这个

{{ cuAcc|yesno:"yeah,no" }}

可能会有效,但我不知道应该如何连接cuAcc.name和空字符

那么在这种情况下通常的方法是什么?即时通讯来自PHP,我们有类似的东西

{{ cuAcc ? cuAcc.name : '' }}

2 个答案:

答案 0 :(得分:1)

你不需要任何检查,只需把它:

<input type="text" name="name" value="{{ cuAcc.name }}">

如果用户有name,则填充它,否则不填写。

或者您可能需要default_if_none

def edit(request):
    try:
       account =  Accounts.objects.get(user=request.user.id)
    except Accounts.DoesNotExist :
       account = None #<---- None instead of False
    return render(request , 'account/edit.html' , {'cuAcc': account})

模板

<input type="text" name="name" value="{{ cuAcc.name|default_if_none:'Please enter your name' }}">

答案 1 :(得分:1)

尝试在except子句中创建一个空帐户,如下所示:

def edit(request):
    try:
       account =  Accounts.objects.get(user=request.user.id)
    except Accounts.DoesNotExist :
        account = Accounts()
    return render(request , 'account/edit.html' , {'cuAcc':account})

,模板应该有:

<input type="text" name="name" value="{{ cuAcc.name }}">

我希望这有效。