从数据库填充表单:速记打印/if和concaten

2024-04-18 22:01:59 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我在写一个编辑表单,基本上我在显示表单,如果用户已经填充了表单,我想用数据库存储的值填充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 : '' }}

Tags: 方法textname数据库编辑表单inputvalue
2条回答

尝试在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 }}">

我希望这能奏效。你知道吗

你不需要支票,只要写上:

<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' }}">

相关问题 更多 >