python - 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的错误:
解决方案
推荐阅读
- design-patterns - 具有受保护创建和公共读取访问权限的可区分联合的功能设计模式是什么?
- javascript - 将鼠标悬停在列表上时传单打开弹出窗口
- git - 通过 AWS CodeCommit Repo 上的 SSH 授予对 Ionic 应用程序构建的访问权限
- r - 如何从 lmer 绘制和提取不同组的斜率和截距值?
- java - size(int x, int y) 在构建处理库路径后运行但在 intellij 中不起作用
- windows - golang 复制文件需要太多时间
- chart.js - Chart.js - 如何向折线图添加第二条数据线
- date - 如何将字符串 yyyy-mm-dd 转换为月份名称?
- php - 如何在 PHP 中使用 Laravel Query Builder 和 Where 子句?
- vuejs2 - 使用v-for时,为什么key prop值没有传播到子组件?