数据未显示在HTML上。。。它显示为空

2024-09-28 03:17:47 发布

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

我已经创建了一个数据库,还创建了一个表单来添加数据。 但是当我试图在html上显示数据时,它什么也没有显示。 我的模型是

class Bank(models.Model):
    bankname=models.CharField(max_length=50)
    acctitle=models.CharField(max_length=50)
    city=models.CharField(max_length=50)
    branchname=models.CharField(max_length=50, null=True)
    branchcode=models.IntegerField(default=0)
    adddate=models.DateTimeField(default=timezone.now)
    

    def __str__(self):
        return self.bankname

我的观点

def add_bank(request):
    if request.method=='POST':
        bankname=request.POST.get('bankname')
        acctitle=request.POST.get('acctitle')
        city=request.POST.get('city')
        branchname=request.POST.get('branchname')
        branchcode=request.POST.get('branchcode')

        data=Bank(bankname=bankname,acctitle=acctitle,city=city,branchname=branchname, branchcode=branchcode)
        data.save();
    return render(request, 'add_bank.html')

        
def add_amount(request):

    banks= Bank.objects.all()
    return render(request, 'add_amount.html', {'banks':banks})

我的Html用于显示数据

<select name="banks" class="form-control custom-select">
                      <option value="">Bank:</option>
                      {% for bank in banks %}
                        <option value="{{ forloop.counter }}">{{ banks.bankname }}</option>
                      {% endfor %}
                      
                    </select>

Output Image

我不知道我在哪里犯了错误


Tags: addcitygetmodelsrequestpostlengthmax
2条回答

将此行中的banks.bankname更改为bank.bankname

<option value="{{ forloop.counter }}">{{ banks.bankname }}</option>

要理解这没有导致错误的原因,可以参考this

您使用的是for循环,其中banks模型的每个项(对象)在循环中都被称为bank。因此,请使用“bank.bankname”

例如

<option value="{{ forloop.counter }}">{{ bank.bankname }}</option>

此外,作为最佳实践,请尝试在选项标记中使用表的主键值。这将帮助您更好地引用javascript中的特定数据(tables对象),以便将数据发送到视图

例如

<option value="{{ bank.banks_primary_key }}">{{ bank.bankname }}</option>

相关问题 更多 >

    热门问题