python - 如何使用 Django 用数据库中的数据填充 HTML 下拉列表?

标签 python django

我试图在包含数据库中的选项(具体来说,用户 ID 和角色名称,供用户选择加载到战斗模拟器中)的 HTML 页面上创建下拉选择,但它一直显示为空没有任何错误或任何错误的迹象。我试图将我的解决方案基于 this 。我知道通过 Django 使用 ModelForm 是一种选择,但如果我所做的只是填充 HTML 字段,我不确定花时间熟悉 ModelForm 是否是我的最佳选择。以下是我目前拥有的:

views.py:

from django.shortcuts import render
from django.views.generic import TemplateView # Import TemplateView
from django.http import HttpResponse
from pathfinder.models import characterTable

[...]
class battleSimView(TemplateView):
    template_name = "battleSim.html"

    def post(request):
       item  = characterTable.objects.all() # use filter() when you have sth to filter ;)

       return render_to_response (self.template_name, {'items':item}, context_instance =  RequestContext(request),)
[...]

模型.py:

from django.db import models

class characterTable(models.Model):
    userID = models.CharField(max_length = 32)
    playerName = models.CharField(max_length = 32)
    race = models.CharField(max_length = 32)
    playerClass = models.CharField(max_length = 32)
    strength = models.CharField(max_length = 2)
    dexterity = models.CharField(max_length = 2)
    constitution = models.CharField(max_length = 2)
    intelligence = models.CharField(max_length = 2)
    wisdom = models.CharField(max_length = 2)
    charisma = models.CharField(max_length = 2)

    def __str__(self):
        return (self.userID + ": " + self.playerName )
[...]

battleSim.html 的表单区域,在我的模板文件夹中

[...]
    <form method="POST">
      <select name="item_id">
      {% for entry in items %}
          <option value="{{ entry.userID }}">{{ entry.playerName }}</option>
      {% endfor %}
    </select>
    </form>
[...]

我试图做的是使用 HTML 表单中的 POST 调用来调用views.py 中的 post 函数,理想情况下,它会在我的脑海中渲染页面并将模型中的项目作为参数传递,然后可以在下拉列表中使用 HTML 页面。我需要在某个地方使用 GET 函数吗?

最佳答案

希望您的问题能够通过这个问题和答案得到解决,

click the link

关于python - 如何使用 Django 用数据库中的数据填充 HTML 下拉列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59121420/

相关文章:

python - 如何迭代列表中重叠的(当前,下一个)值对?

Python 关键字参数解包并返回字典

Python:使用 DictReader 和 DictWriter 将两个带有标题行和匹配值的 CSV 文件组合在一起

html - 页面上的两个 <li> 元素,具有不同的样式

Django表单PUT和DELETE http方法

python - 如何正确测试Django UpdateView?

python - Pandas 从现有列添加列 based_domain

python - 遍历嵌套字典并获取 Python 中的路径?

html - chrome 的@media print 不工作

python - Django 1.7 将以编程方式添加组的代码放在哪里?