Искам да предам 2 параметъра на моята функция за изглед, за да изтрия конкретен запис от таблицата.
Има M2M връзка, върху която искам да работя, така че трябва да предам 2 параметъра за 2 различни обекта.
Модел:
class Products(models.Model):
name = models.CharField(max_length=50)
price = models.DecimalField(max_digits=100, decimal_places=2, blank=True)
class Meals(models.Model):
name = models.CharField(max_length=40)
ingredient = models.ManyToManyField(Products, related_name="products")
гледания:
def remove_ingredient(request, pk, name):
meal = Meals.objects.get(pk=pk)
prod = Products.objects.get(name=name)
meal.ingredient.remove(prod)
return HttpResponse(status=204)
URL модели:
urlpatterns = [
path("meal_detail/<int:pk>/",MealDetailView.as_view(), name="meal_detail" ),
path("meal_detail/<int:pk>/", remove_ingredient, name="remove_ingredient")
]
HTML шаблон:
<a class="hyperlink-off" href="/bg{% url 'remove_ingredient' pk=object.pk name=ingredient.name %}">
Remove
</a>
Както можете да видите, искам да предам 2 аргумента от HTML шаблон към моята функция (първичен ключ на Meal
и име на продукта, който искам да премахна от Meals.ingredient
).
Но в същото време URL моделът получава 2 аргумента и се опитва да генерира връзка към уебсайт въз основа на двата, когато се нуждае само от един. Опитах се дори да принудя функцията да остане на същата страница, като предадох HttpResponse(status=204)
.
Как мога да изключа един от аргументите, предадени от HTML към urls.py
, или има ли друг начин за предаване на променливи към функцията за изгледи от html шаблон?