Если я правильно понял вашу потребность, вы можете сделать что-то вроде:
<form method="POST">
<select name="item_id">
{% for entry in items %}
<option value="{{ entry.id }}">{{ entry.name }}</option>
{% endfor %}
</select>
</form>
Кстати, вы должны дать имя элементам вместо элемента, так как это коллекция (но это просто замечание;)).
При этом у вас будет список всех элементов в базе данных.
Затем в сообщении вот что вам нужно сделать:
def selectview(request):
item = Item.objects.all() # use filter() when you have sth to filter ;)
form = request.POST # you seem to misinterpret the use of form from django and POST data. you should take a look at [Django with forms][1]
# you can remove the preview assignment (form =request.POST)
if request.method == 'POST':
selected_item = get_object_or_404(Item, pk=request.POST.get('item_id'))
# get the user you want (connect for example) in the var "user"
user.item = selected_item
user.save()
# Then, do a redirect for example
return render_to_response ('select/item.html', {'items':item}, context_instance = RequestContext(request),)
Конечно, не забудьте включить get_object_or_404