Может быть, именно так вы делаете отступ после удаления, попробуйте это
Я не вижу ваш обработчик URL-адресов viewAll, куда вы хотите перенаправить, вам нужно написать viewAll view, где вы перечисляете все свои продукты
from django.urls import reverse
urlpatterns = [
path('',views.ViewAll, name='viewAll')
path('new/', views.NewProduct, name='NewProduct'),
path('product/<int:pk>/<str:slug>/', views.viewProduct, name='viewProduct'),
path('product/<int:pk>/delete/', views.deleteProduct, name='deleteProduct'),
]
def deleteProduct(request, pk):
if request.method == 'GET':
product = Product.objects.filter(pk = pk)
return redirect('viewProduct', pk = pk, slug = product.slug)
if request.method == 'POST':
product = get_object_or_404(Product, pk = pk)
if product.productAuthor == request.user:
product.delete()
return redirect(reverse('yourappname:viewAll'))
Отличный? Я просто поднимаю это; попробуйте это (внутри groovyconsole):
File.metaClass.invokeMethod = { String name, args ->
System.out.print ("Call to $name intercepted...");
File.metaClass.getMetaMethod(name, args).invoke(delegate, args);
}
new File("c:/temp").eachFile{
if (it.isFile()) println it.canonicalPath
}
Первый код - AOP. Все вызовы любого метода объекта File будут перехвачены. Никаких дополнительных инструментов не требуется. Это выполняется против существующего Java-класса динамически.
Во втором блоке вы удаляете параметр закрытия f. Будучи всего одним параметром, по умолчанию используется встроенная переменная «it», доступная для контекста закрытия.
Вот что вы получаете:
«Перехвачен вызов isFile ... C: \ temp \ img.jpg»
и т.д.
Из ваших критериев я бы выбрал JRuby:
Все JVM имеет доступ, что является лотом
Отличная структура Monkeybars , которая позволяет создавать графический интерфейс Swing в вашем дизайнере графического интерфейса, а затем подключите его с помощью чистого кода Ruby
Rawr может упаковать ваше приложение в виде исполняемого файла jar
Разделяемые библиотеки Java легко, C через jna + libffi
Swing просто работает. Не уверен, насколько легко использовать QtJambi, но это определенно возможно.
Много. У Ruby отличное сообщество.
Везде, где работает JVM
Все библиотеки баз данных ruby и все библиотеки java
Здесь Ruby явно опережает groovy и python. С самого начала в языке были приняты действительно красивые дизайнерские решения, что проявляется в последовательности и мощи стандартной библиотеки. Блоки , в частности, делают его использование приятным.
Поработав со всеми тремя из них, я могу сказать следующее:
Python
Ruby
Groovy