【发布时间】:2016-05-30 05:49:47
【问题描述】:
我正在尝试创建一个具有单个下拉输入的 django 页面,它引用包含数千个条目的数据库,当用户选择其中一个项目并点击“提交”时,它会将它们重定向到一个 html 页面生成他们选择的项目的统计信息。我已经尝试了几件事,但没有得到任何工作,我尝试过的最新事情是我在这里找到的,虽然我也无法让它工作,它向我抛出了这个错误:“局部变量” team_number' 在分配前引用”
views.py:
def team_stats(request):
if request.method == 'POST':
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_to_response('team-stats.html', {
'team_number': team_number,
})
forms.py:
class TeamStats(forms.ModelForm):
model = Team
fields = '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'
我希望我所寻求的帮助是有意义的。如果没有,我会尝试更好地解释它。谢谢
【问题讨论】:
-
你报告的问题是你从来没有设置
team_number如果方法没有发布,真正的问题可能是别的东西,你能显示你的表单模板吗? -
您的视图缺少 GET 部分。下拉菜单可能返回一个 GET 请求,跳过 POST 部分,然后返回语句抛出错误 - 变量未定义,因为它是 GET
标签: python html django redirect django-forms