首页 > 解决方案 > Django:进行发布请求时找不到页面404错误

问题描述

我有一个使用两个外键的模型。其中一个是登录用户,另一个是继承帖子。但是帖子外键不起作用或没有保存到数据库中,但它应该保存用户选择的特定帖子或使用pk。

这是我的models.py:

class Booking(models.Model):
    b_price =  models..ManyToManyField(price, related_name='b_price',on_delete=models.CASCADE,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='')

def __str__(self):
    return str(self.user)

这是我的views.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):
    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.save()
    bk.b_price.add(booking)
    return super().form_valid(form)

这是我的 urls.py:

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

这是我传递 pk 的 HTML 页面:

{% for loader_post in request.user.Loader.all %}
  {% for price in loader_post.prices.all %}


    {{loader_post.image_of_load.url }}
    Post id : {{loader_post.id }}
    Driver offer : {{price.driver_price }}
    Offer by : {{price.driver_name }}
    <a style="margin-right:20px;" href="{% url 'Loader:booking_remove' price.id %}"></a>
    <a href="{% url 'Loader:booking_approve' pk=price.pk %}"><</a>
</div>
</div>
{% endfor %} {% endfor %} {% endblock content %}

这是我的帖子图片。当我点击勾选按钮时,会出现下一个表单,但它也应该采用帖子的 id,但不会。

我的帖子

这是pk的错误:

错误页面

标签: pythondjangodjango-modelsdjango-viewsdjango-urls

解决方案


推荐阅读