我不太確定如何標題這個問題,但我試圖用Django開發一個簡單的webapp。我想要做的是用戶將手動標記每個圖像,並且每個標記將具有特定圖像的外鍵(但每個圖像可以具有多個標記)。該索引頁應顯示實際圖像,但我還沒有想出這個出來呢...Django ModelForm在提交後獲得列表中的下一個項目
很多問題是,我不知道如何實現它,以便每頁,索引頁將顯示圖片標籤的圖片和框。用戶提交後,它將轉到下一個標記數最少的未標記圖像/圖像。現在,用戶可以提交一個標籤(並且數據寫入正確),但它仍然保持在同一圖像上。我是一個Python/Django的小白,所以請原諒我: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)
i ndex.html:
<ul>
<form action="/imageSite/submit/" method="post">
{%csrf_token %}
<table>
{{ form.as_table }}
</table>
<input type="submit" value="Submit" />
</form>
</ul>
感謝您的建議,但我想另一種方式來做到這一點;基本上我只是用最少量的標籤抓取QuerySet中的元素,並用表單顯示它。 – Raymond 2012-07-10 08:11:50
@雷蒙德:很高興聽到你解決了這個問題! – 2012-07-10 08:13:05