【发布时间】:2018-06-24 12:47:40
【问题描述】:
我正在尝试创建类似于 Hyrecar 的租车网站。我根据 Django 教程“使用表单”创建了一个表单,但我不知道如何呈现从 POST 表单中获得的信息。我想让我从 POST 获得的信息(预订名称、租金...等)显示汽车及其预订的详细信息。汽车是预订中的外键字段。我想将其重定向到显示已预订汽车的页面。 例如
- 预订名称:xyz
- 租金:123
- 汽车 : carimage.jpg 4 .
我想将它重定向到弹出页面。如果用户预订了汽车并发布了表格。之后将其重定向到 pop.html 页面并显示用户现在发布的预订详细信息。
Forms.py
class BookingForm(ModelForm):
class Meta:
model = Booking
widgets = {
'times_pick': forms.TimeInput(attrs={'class':'timepicker'}),
}
fields = ('booking_name','rental_price','book_car','customer_name','times_pick',)
urls.py
[
url(r'^booking/',views.BookingView.as_view(),name='car_booking'),
url(r'^pop/$',views.PopView.as_view(),name='pop'),
]
views.py
class CarDetailView(DetailView):
context_object_name = 'car_details'
model = models.Car
template_name = 'buggy_app/car_detail.html'
class BookingView(FormView):
template_name = 'buggy_app/booking.html'
form_class = BookingForm
models = Booking
def form_valid(self, form):
form.save()
return super(BookingView, self).form_valid(form)
success_url = reverse_lazy('index')
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)
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
booking.html
<form method="POST">
{% csrf_token %}
{% bootstrap_form form %}
<input type="submit" class='btn btn-primary' value="Submit">
</form>
【问题讨论】:
-
所以你想在 class BookingView(FormView) 中使用发布的值
-
我想显示用户预订的汽车。您可以说我想显示已预订的 car_details。获取该 id 数据并显示到 pop.html。您预订了 nissan 并且价格非常感谢您的预订
-
您尝试过使用 AJAX 吗?
-
没有。我不知道ajax
-
如何使用ajax
标签: django django-forms django-templates