Я хочу передать 2 параметра моей функции просмотра, чтобы удалить указанную c запись из таблицы.
Существует соединение 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="{% 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 шаблона?