如何从详细视图传递到形成外键字段?

How to pass from detail view to form foreignkey field?

我有详细的汽车和预订 btn 查看预订表格。我想超过显示细节的那辆车。而不是我总是 select 从外键下拉车 select.

在汽车详情视图中输入:

<a href="{% url 'car_booking' %}?car={{ car.id }}">Booking Now</a>

然后鉴于订车:

class BookingView(FormView):
    template_name = 'car/booking.html'
    form_class = BookingForm

    def get_context_data(self, **kwargs):
        # kwargs['car'] is the car booking now!
        try:
            kwargs['car'] = Car.objects.get(id=self.request.GET.get('car', '')) 
        except (Car.DoesNotExist, ValueError):
            kwargs['car'] = None
        return super(BookingView, self).get_context_data(**kwargs)

    # if you still want to keep select car in form,and auto select this car do as:
    def get_initial(self):
        initial = super(BookingView, self).get_initial()
        if 'car' in self.request.GET:
            try:
                initial['book_car'] = Car.objects.get(id=self.request.GET['car'])
            except (Car.DoesNotExist, ValueError):
                pass     
        return initial

url 可能喜欢:

path('booking/', BookingView.as_view(), name='car_booking'),