python - html View 中缺少 django 模型下拉列表

标签 python html django redirect django-models

我正在编写一个 django 应用程序,我希望用户能够从下拉菜单中选择一个 [team_number],然后当他们点击提交时被重定向到一个页面,该页面呈现与那个选择。我正在使用重定向类 View,但我遇到的问题是,没有显示下拉菜单来从 html 页面 team-stats.html 上选择 [team_number]。

views.py:

class TeamStatsView(View):
    def get(self, request, *args, **kwargs):
        return render(request, 'team-stats.html',
                      {'team_number': TeamStats()})

    def post(self, request, *args, **kwargs):
        team_number = TeamStats(request.POST, request.FILES)
        if team_number.is_valid():
            # do stuff & add to database
            team_number.save()
            team_number = TeamStats.objects.create()
            # use my_file.pk or whatever attribute of FileField your id is
            # based on
            return HttpResponseRedirect('/team-stats/%i/' % team_number.pk)
        return render(request, 'team-stats.html', {'team_number': team_number})

models.py:

class Team(models.Model):
    team_number = models.IntegerField()
    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'

forms.py:

class TeamStats(forms.ModelForm):
    class Meta:
        model = Team
        fields = ['team_number']

team-stats.html:

<form method="post" action="">
  {% csrf_token %} {{ TeamStatsView }}
  <input type="submit" value="Submit" />
</form>

如果我需要更新任何其他文件以显示我正在尝试执行的操作,请告诉我。谢谢

最佳答案

尝试将 View 变量名称更改为 team_numbers 并将 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>

然后将您的 View 更新为:

class TeamStatsView(View):
    def get(self, request, *args, **kwargs):
        return render(request, 'team-stats.html',
            {'team_numbers':Team.objects.values('team_number')})                                             

关于python - html View 中缺少 django 模型下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35494580/

相关文章:

python - SQLAlchemy 过滤一对多关系中的子项

python - 在Python中更改Widget Window的样式和背景颜色

python - 某个 wheel (.whl) 包的依赖项是什么?

python - 在 python 3 上添加两个日期

html - 嵌套 div 的最小页面高度

django - django 自动添加的字段

jquery - jQuery 帖子上没有发生任何事情

java - 获取span标签的标题

django - 日期验证 --> 结束日期必须大于开始日期

python - 拥有一个与多个不同模型相关的模型