Python html视图中缺少django模型下拉列表

Python html视图中缺少django模型下拉列表,python,html,django,redirect,django-models,Python,Html,Django,Redirect,Django Models,我正在编写一个django应用程序,我希望用户能够从下拉菜单中选择一个[team_number],然后当他们点击submit时,会被重定向到一个页面,该页面显示与该选择相关的数据库信息。我使用的是重定向类视图,但我遇到的问题是,在html页面team-stats.html上没有显示下拉菜单来选择[team_number] views.py: models.py: forms.py: team-stats.html: 如果有任何其他文件,我需要更新到这里来显示我正在尝试做什么,请让我知道。谢谢您的

我正在编写一个django应用程序,我希望用户能够从下拉菜单中选择一个[team_number],然后当他们点击submit时,会被重定向到一个页面,该页面显示与该选择相关的数据库信息。我使用的是重定向类视图,但我遇到的问题是,在html页面team-stats.html上没有显示下拉菜单来选择[team_number]

views.py:

models.py:

forms.py:

team-stats.html:


如果有任何其他文件,我需要更新到这里来显示我正在尝试做什么,请让我知道。谢谢

您的视图变量称为团队编号。 尝试将TeamStatsView更改为团队编号:


尝试将视图变量名称更改为team_number,并用以下代码替换team-stats.html代码段:

<form method="post" action="">
    <select name="teams">
    {% for team_number in team_numbers %}
        <option value="{{ team_number }}">Team Num: {{ team_number }}</option>
    {% endfor %}
    </select>
</form>

您可以使用选项=数字

NUMBERS = (
    ('1','1'),
    ('2','2'),
    ('3','3'),
    ('4','4')
)
class Team(models.Model):
    team_number = models.IntegerField(choices=NUMBERS )
    team_notes = models.CharField(max_length=150)
    event_id = models.ForeignKey(
        'Event', on_delete=models.CASCADE, unique=False)

    def __unicode__(self):
        return str(self.team_number)

    class Meta:
        db_table = 'teams'
        app_label = 'frcstats'

这样就可以添加一个整数输入,虽然不是数据库中的下拉列表。另外,我以前在views.py文件上得到的帮助可能是错误的,因为它试图将一个新条目保存到数据库中,而不是使用选择从数据库中提取信息并显示选项是否已修复?然后你应该考虑广告选择到你的模型领域。否则使用@Nick-s answer我不想使用这样的选项,因为它是一个有几千个数字可供选择的数据库。这样做至少会在html视图中创建一个下拉列表,但它没有填充任何内容,它只是一个空下拉列表,这意味着您的team_numbers视图变量中没有任何内容。我相信您可以使用查询集:Team.objects.values'Team_number'查询这些。请确保将团队模型导入到视图中。我很困惑,该查询将转到哪里?它应该显示我数据库中团队编号下的777个条目。团队模型已导入,因为它在单独的项目中使用view@alicen我更新了我的答案,以反映TeamStatsView所需的更改-这非常有效,除了下拉列表中没有显示我数据库中team_number的值,而是将它们全部列为team Num:{'team_number':120},虽然它确实正确地改变了数字
class TeamStats(forms.ModelForm):
    class Meta:
        model = Team
        fields = ['team_number']
<form method="post" action="">
  {% csrf_token %} {{ TeamStatsView }}
  <input type="submit" value="Submit" />
</form>
<form method="post" action="">
  {% csrf_token %} {{ team_number }}
  <input type="submit" value="Submit" />
</form>
<form method="post" action="">
    <select name="teams">
    {% for team_number in team_numbers %}
        <option value="{{ team_number }}">Team Num: {{ team_number }}</option>
    {% endfor %}
    </select>
</form>
class TeamStatsView(View):
    def get(self, request, *args, **kwargs):
        return render(request, 'team-stats.html',
            {'team_numbers':Team.objects.values('team_number')})                                             
NUMBERS = (
    ('1','1'),
    ('2','2'),
    ('3','3'),
    ('4','4')
)
class Team(models.Model):
    team_number = models.IntegerField(choices=NUMBERS )
    team_notes = models.CharField(max_length=150)
    event_id = models.ForeignKey(
        'Event', on_delete=models.CASCADE, unique=False)

    def __unicode__(self):
        return str(self.team_number)

    class Meta:
        db_table = 'teams'
        app_label = 'frcstats'