所以即时编写一个编辑表单,基本上即时显示表单,如果用户已填写它,我想用数据库存储值填充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 : '' }}
答案 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 }}">
我希望这有效。