В настоящее время я использую модели, чтобы пользователи вводили данные с помощью шаблонов (а не admin), которые затем сохраняются, после чего пользователи могут видеть все данные, которые они ввели. Я также хотел бы предоставить пользователям возможность удалять определенные записи, это было бы сделано с помощью идентификаторов объектов для идентификации и удаления определенных объектов.Django: удалить объект модели с помощью шаблона
Вот мой 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 - 1,2,3. Ссылка на удаление будет читать «/ delete/1» для всех представлений, что позволит пользователям удалять их первое представление. Любая идея о том, как я могу это решить?
Благодарим вас, разместив список до того, как «для obj в избранном_list» работал. Однако теперь я получаю несколько ссылок на удаление. Один для каждого идентификатора. – ng150716
Правильно, это то, что делает ваш код шаблона. См. Цикл for с тегами 'a'? – karthikr
Ах да, я вижу. Но когда я беру цикл «for» в своем шаблоне и просто пытаюсь передать {{Stock_id}}, ссылки на удаление имеют все идентификаторы в нем и в скобках, например: «/ delete/[11,12]», Любой способ борьбы с этим? – ng150716