【发布时间】:2014-11-19 11:57:32
【问题描述】:
我目前正在使用模型让用户输入数据,使用然后存储的模板(不是管理员),此时用户可以看到他们输入的所有数据。我还想让用户能够删除特定条目,这将使用对象 ID 来识别和删除特定对象。
这是我的views.py:
@login_required(login_url='/login/')
def fav(request):
context = RequestContext(request)
#This returns all of the data the user has entered
favorites_list = StockTickerSymbol.objects.filter(user=request.user).order_by('-added_date')
`
#This is to try to get the ID of every object in favorites_list and append it to a list
for obj in favorites_list:
stock_id = []
stock_id.append(obj.id)
#Here is where the form is processed to save the data the user has entered
if request.method == 'POST':
form = FavoritesForm(request.POST)
if form.is_valid():
stock = form.save(commit=False)
stock.user = request.user
stock.save()
return redirect(fav)
else:
print form.errors
else:
form = FavoritesForm()
context_dict = {'favorites': favorites_list, 'form':form, 'stock_id':stock_id}
return render_to_response('favorites/favorites.html', context_dict, context)
def delete(request, id):
stock_to_delete = get_object_or_404(StockTickerSymbol, pk=id).delete()
return redirect(fav)
这是我的 urls.py:
url(r'^favorites/$', views.fav, name='favorites'),
url(r'^add_favorites/$', views.add_fav, name='add favorites'),
url(r'^delete/(?P<id>\d+)/$', views.delete, name='delete')
这是我的模板文件中负责删除的部分
{% for id in stock_id %}
<div align="right"><a href="/delete/{{id}}">Delete</a></div>
{% endfor %}
我对这段代码的问题是,我的模板中的删除链接只给出了所有链接的第一个对象 ID。例如,如果用户有 3 个提交,并且 id 是 1,2,3。所有提交的删除链接都将显示为“/delete/1”,因此只允许用户删除他们的第一个提交。关于如何解决这个问题的任何想法?
【问题讨论】:
标签: python django django-models django-forms django-templates