Hai saya sedang mengerjakan proyek di mana pengemudi menambahkan harga ke posting pengguna ... sekarang pengguna dapat menerima dan menolak penawaran .... ketika pengguna menerima penawaran, lakukan pemesanan tetapi setelah mengirimkan formulir itu memberikan kesalahan

Ini model saya.py

class Booking(models.Model):
    post =  models.ForeignKey(Loader_post, 
     related_name='b_price',on_delete=models.CASCADE,default='',null=True)
    user = models.ForeignKey(User, on_delete=models.CASCADE,  null=True, default='')
    approved_price = models.BooleanField(default=False)
    pay = models.CharField(max_length=30, default='')
    mode = models.CharField(max_length=30 ,default='')

Ini adalah pandangan saya.py

class booking_approve(CreateView, LoginRequiredMixin):
    form_class = forms.booking_form
    model = Booking
    template_name = "confirm_booking.html"
    success_url = reverse_lazy("Loader:post")

def form_valid(self, form,*args, **kwargs):
    booking = get_object_or_404(Booking, pk=self.kwargs.get('pk'))
    print(form.cleaned_data)
    bk = form.save(commit=False)
    bk.user = self.request.user
    bk.post = booking
    bk.save()
    return super().form_valid(form)

Ini url saya.py

path('confirm_booking/<int:pk>/booking',views.booking_approve.as_view(), name="booking_approve"),

Ini halaman html saya my

{% for loader_post in request.user.Loader.all %}
{% for price in loader_post.prices.all %}
    <img src="{{loader_post.image_of_load.url }}" alt="Avatar" style="width:100%; height: 25%; 
    margin-bottom: 10px; ">
    <h4><b>Post id : {{loader_post.id }}</b></h4>
    <p>Driver offer : <i class="fa fa-inr" aria-hidden="true"></i>{{price.driver_price }}</p>
    <p>Offer by : {{price.driver_name }}</p>
    <a style="margin-right:20px;" href="{% url 'Loader:booking_remove' pk=loader_post.pk %}"><i 
     class="fa fa-times fa-4x" style="color: red;" aria-hidden="true"></i></a>
    <a href="{% url 'Loader:booking_approve' pk=loader_post.pk %}"><i class="fa fa-check-circle fa- 
         4x" aria-hidden="true"></i></a>
 </div>
 </div>
 {% endfor %} {% endfor %}

Ini adalah kesalahan dalam pandangan saya

error

0
dilmeet padda 28 Mei 2020, 08:41

1 menjawab

Jawaban Terbaik

Ganti baris ini:

booking = get_object_or_404(Booking, pk=self.kwargs.get('pk'))

Dengan:

booking = get_object_or_404(Loader_post, pk=self.kwargs.get('pk'))

Karena sebelumnya Anda mencoba untuk menetapkan objek pemesanan ke objek pemesanan lain. Sebaliknya, itu harus menjadi objek Loader_post. Saya juga dapat melihat di sini, Anda mengirim kunci utama Loader_post sebagai argumen url.

1
ruddra 28 Mei 2020, 06:35