Django HTMX формы, передающие id выбранного внешнего ключа

Это мой models.py

class Services(models.Model):
    name = models.CharField(max_length=50)
    price = models.FloatField()
    description = models.CharField(max_length=500, null=True)
    # employees =

    def __str__(self):
        return self.name


class Venue(models.Model):
    name = models.CharField(max_length=50)
    services = models.ManyToManyField(Services)
    description = models.CharField(max_length=500, null=True)
    capacity = models.FloatField()
    venue_price = models.FloatField(null=True)
    # available =

    def __str__(self):
        return self.name


class Order(models.Model):
    venue = models.ForeignKey(Venue, on_delete=models.SET_NULL, null=True, default=1)
    services = models.ManyToManyField(Services, null=True)
    total_price = models.FloatField(null=True)
    # date =

В моем html я сделал набор радиокнопок с внешними ключами места проведения из заказа. Когда пользователь выбирает нужное ему место, я хочу, чтобы услуги менялись в зависимости от того, какие услуги доступны в этом месте. Я не понимаю, как я могу послать htmx запрос к views, который передает pk для того, какое место было выбрано.

Это мой html

<div class="container">
  <div hx-post="{% url "planner:create"%}"
       hx-swap="beforeend"
       hx-trigger="click"
       hx-target="#services"
       class="container form-check-inline">
    {{ form.venue }}
  </div>
</div>

<div id="services"></div>

Это views.py

class EventCreateView(CreateView):
    model = Order
    form_class = OrderForm

    context_object_name = "venue"

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        venue = Venue.objects.get(pk=???)
        context["services"] = venue.services.all()
        return context


    def get_template_names(self, *args, **kwargs):
        if self.request.htmx:
            return "planner/order_form_partial.html"
        else:
            return "planner/order_form.html"

Это urls.py

urlpatterns = [
    path("create/", EventCreateView.as_view(), name="create"),
]
Вернуться на верх