【问题标题】:Unable to populate select option from database in Django无法从 Django 中的数据库中填充选择选项
【发布时间】:2021-12-24 10:22:54
【问题描述】:

我是 Django 的初学者,无法将数据库表中的项目填充到 <option></option>.

来自 models.py:

from django.db import models
from django.db.models.fields.related import ForeignKey

# Create your models here.

class Tbl_Category(models.Model):
    cat_Id = models.AutoField(primary_key=True)
    cat_Name = models.CharField(max_length=20, unique=True)

    # def __str__(self):
    #     return [self.cat_Id, self.cat_Name]

class Tbl_Item(models.Model):
    item_Id = models.AutoField(primary_key=True)
    item_Name = models.CharField(max_length=30, unique=True)
    cat_Idf = models.ForeignKey(Tbl_Category,on_delete=models.CASCADE)
    item_Price = models.IntegerField()

来自views.py:

from django.shortcuts import render
from orderapp.models import Tbl_Item

# Create your views here.
def displayMain(request):
    return render(request,'index.html')

def ct(request):
    options = Tbl_Item.objects.filter(cat_Idf=1)
    context = {'alloptions' : options}
    return render(request, 'index.html', context)

来自 index.html:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    {% load static %}
    <link rel="stylesheet" href="{% static 'css.css' %}">
    <title>DATA COLLECTION</title>
</head>

<body>
    <div class="container">
        <div class="order-screen">
            <div class="element">
                <label for="coffee-tea">Coffee-Tea</label>
                <select name="coffee-tea" id="coffee-tea">
                    {% for opt in alloptions %}
                    <option value="{{opt.item_Id}}">{{opt.item_Name}}</option>
                    {% endfor %}
                </select>
            </div>
       
               <div class="cart-screen">CART-SCREEN</div>
        
    </div>
</body>

</html>

我向您保证,我的数据库连接工作正常,运行 ma​​kemigrationsmigrate 时没有问题em> 命令。我的表包含我硬编码的值。请指导我的方法有什么问题。谢谢。

【问题讨论】:

    标签: mysql django


    【解决方案1】:

    如果我正确理解您的问题,您希望在表单中有一个用于不同选项的下拉菜单。在 Django 中,这将在带有 choices 的模型上完成 例子

    OWNERSHIP=[
        ('current owner', 'Current Owner'),
        ('past owner','Past Owner'),
        ]
    
    
    class Post(models.Model):
        title = models.CharField(max_length=100)
        ownership = models.CharField(max_length=100, choices=OWNERSHIP)
    

    然后将表单字段呈现为{{ form.ownership }},它会给你一个下拉菜单

    【讨论】:

    猜你喜欢
    • 2016-05-27
    • 1970-01-01
    • 2018-09-11
    • 1970-01-01
    • 2013-03-04
    • 1970-01-01
    • 1970-01-01
    • 2017-12-12
    • 2019-10-10
    相关资源
    最近更新 更多