Получить аргумент URL для обработки общих представлений - PullRequest
0 голосов
/ 28 апреля 2019

Я хотел бы написать представление с одним шаблоном, которое в зависимости от пути URL-адреса будет отображать различные поля модели.Так, например, если path равен

http://127.0.0.1:8000/trip/2/1/

, я получу вторую поездку из моей базы данных (это работает), а 1 должен дать (как написано в html) поле описания.Я не знаю, как обработать это до context_processor, на мой взгляд.У вас есть идеи?

views.py

class TripDescriptionCreate(LoginRequiredMixin, UpdateView):

    model = Trip
    template_name = 'tripplanner/trip_arguments.html'
    fields = ["description", "city", "country", "climate", "currency", "food", "cost", "comment", "accomodation",
    "car", "flight", "visa", "insurance", "remarks"]
    context_object_name = 'trips'
    success_url = '/'

    def form_valid(self, form):
        form.instance.author = self.request.user
        return super().form_valid(form)

trip_arguments.html

 <form method="POST">
            {% csrf_token %}
            <fieldset class="form-group">
                <legend class="border-bottom mb-4">{{ trips.tripName }}</legend>
                    {% if field_id == 1 %}
                        {{ form.description|as_crispy_field }}
                    {% elif field_id == 2 %}
                        {{ form.city|as_crispy_field }}
                    {% endif %}
            </fieldset>
            <div class="form-group">
                <button class="btn btn-outline-info" type="submit">Update</button>
            </div>
        </form>

urls.py

path('trip/<int:pk>/<int:field_id>', TripDescriptionCreate.as_view(), name='trip-fullfill'),

1 Ответ

0 голосов
/ 08 мая 2019

Итак, я пришел к этой идее. В моем HTML я добавил эти строки:

{% url 'trip-fullfill-description' pk=trip.pk as description_url %}
                {% url 'trip-fullfill-city' pk=trip.pk as city_url %}

{% if request.get_full_path == description_url %}
                    {{ form.description|as_crispy_field }}
                {% elif request.get_full_path == city_url %}
                    {{ form.city|as_crispy_field }}
...