Python Django ModelForm在提交后获取列表中的下一项

Python Django ModelForm在提交后获取列表中的下一项,python,django,django-models,django-views,Python,Django,Django Models,Django Views,我真的不太确定如何命名这个问题,但我正在尝试用Django开发一个简单的Web应用程序。我试图做的是,用户将手动标记每个图像,每个标记将有一个特定图像的外键(但每个图像可以有多个标记)。索引页应该显示实际的图像,但我还没有弄明白 问题是,我不知道如何实现它,所以对于每个页面,索引页面都会显示一张图片和一个图像标签框。用户提交后,它将转到下一个未标记的图像/标记数最少的图像。现在,用户可以提交一个标签(并且数据写入正确),但它仍然保留在同一个图像上。我是Python/Django noob,所以请

我真的不太确定如何命名这个问题,但我正在尝试用Django开发一个简单的Web应用程序。我试图做的是,用户将手动标记每个图像,每个标记将有一个特定图像的外键(但每个图像可以有多个标记)。索引页应该显示实际的图像,但我还没有弄明白

问题是,我不知道如何实现它,所以对于每个页面,索引页面都会显示一张图片和一个图像标签框。用户提交后,它将转到下一个未标记的图像/标记数最少的图像。现在,用户可以提交一个标签(并且数据写入正确),但它仍然保留在同一个图像上。我是Python/Django noob,所以请原谅我:P

以下是相关的源代码:

forms.py:

class InputForm(forms.ModelForm):
image = forms.ModelChoiceField(queryset=Image.objects.all(),
    widget=forms.HiddenInput())

class Meta:
    model = Tag 
models.py:

class Image(models.Model):
image_location = models.CharField(max_length=200)
num_tags = models.IntegerField(default=0)   
image_score = models.FloatField()   
def __unicode__(self):
    return u'%d' % self.id 

class Tag(models.Model):
image = models.ForeignKey(Image)
tag_text = models.CharField(max_length=200, blank=True)

def __unicode__(self):
    return self.tag_text
views.py:

def index(request):
    if request.method == 'POST':
            return HttpResponse(request.POST['image'])

    image = Image.objects.all()[0]
    form = InputForm(initial={'image': image})
    return render_to_response('imageSite/index.html',
    {
            'form':form,
    },
    context_instance=RequestContext(request))

def submit(request):
    form = InputForm(request.POST)
    if(form.is_valid()):
            image = form.cleaned_data['image'];
            image.num_tags = image.num_tags + 1
            image.save()
            model = form.save()
            model.save()
            return redirect(index)
index.html:

<ul>
<form action="/imageSite/submit/" method="post">
{%csrf_token %}
<table>
    {{ form.as_table }}
</table>    
<input type="submit" value="Submit" /> 
</form> 
</ul>
    {%csrf_令牌%} {{form.as_table}}

代码
返回重定向(索引)
不起作用。您需要返回一个重定向响应,该响应带有正确的URL,它应该重定向到该URL。例如:

redirect_url = '/images/45/'
return HttpResponseRedirect(redirect_url)

请参阅Django文档中的完整示例。请注意,需要在视图中计算
redirect\u url
的值:您需要使用最少的标记数计算
Image
对象,并使用Django干净地计算该
Image
对象的url。如果表单无效,则不应执行重定向。

谢谢您的建议,但我找到了另一种方法;基本上,我只是用最少的标记获取QuerySet中的元素,并将其与表单一起显示。