【问题标题】:How to pass from detail view to form foreignkey field?如何从详细视图传递到表单外键字段?
【发布时间】:2018-06-08 00:19:29
【问题描述】:

我有一个关于汽车的详细视图和预订 href 到预订表格的 btn。我想通过那辆显示细节的汽车。而不是我总是从外键下拉汽车选择中选择。

【问题讨论】:

    标签: python django django-class-based-views


    【解决方案1】:

    在汽车详细视图中放置:

    <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
    

    网址可能喜欢:

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

    【讨论】:

    • 我在 urls.py 文件中的 url 路径是什么? 用于预订
    • NameError: name 'BookingView' is not defined ERROR
    • 这是view.BookingView.as_view()
    • 在我的回答中看到我附上的图片 @ykh
    • 和你给我的一样
    猜你喜欢
    • 2017-10-08
    • 1970-01-01
    • 2013-07-29
    • 1970-01-01
    • 2014-01-07
    • 2014-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多