代码之家  ›  专栏  ›  技术社区  ›  Hiddenguy

获取url参数以处理通用视图

  •  0
  • Hiddenguy  · 技术社区  · 6 年前

    我想写一个单模板视图,它根据url路径显示模型的不同字段。例如,如果路径是

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

    我将从我的db获得第二次旅行(这很有效),并且 1 应该给出(如html所写)一个描述字段。我不知道如何处理这件事 context_processor 在我看来。你有什么想法吗?

    意见。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)
    

    绊倒你的论点。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>
    

    网址。py

    path('trip/<int:pk>/<int:field_id>', TripDescriptionCreate.as_view(), name='trip-fullfill'),
    
    0 回复  |  直到 6 年前
        1
  •  0
  •   Hiddenguy    6 年前

    所以我想出了这个主意。在我的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 }}
    
    推荐文章