首页 > 解决方案 > Django:不会自动选择特定用户的帖子

问题描述

您好,正在开展一个项目,在该项目中,用户使用多个用户数据在网站上发布了帖子,当司机看到该帖子时,他将他们的报价添加到该帖子中,但是当司机提交帖子时......在管理员级别选择了特定内容自动但未选择他添加价格的帖子这是我的帖子model.py

class Loader_post(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE ,related_name="Loader")
    pick_up_station = models.CharField(max_length=150)
    destination_station = models.CharField(max_length=150)
    sender_name = models.CharField(max_length=150)
    phone_number = PhoneNumberField(null=False, blank=False, unique=True)
    receiver_name = models.CharField(max_length=150)

这是我为特定帖子添加价格的第二个模型

class price(models.Model):
    my_post = models.ManyToManyField(Loader_post, related_name='prices')
    user = models.ForeignKey(User, on_delete=models.CASCADE,  null=True, default='')
    driver_price = models.CharField(max_length=150, null=True)
    driver_name = models.CharField(max_length=150, null=True)
    approved_price = models.BooleanField(default=False)
    status = models.BooleanField(default=False)

这是我对帖子views.py的加价

@login_required
def add_price_to_post(request, pk):
    post = get_object_or_404(Loader_post, pk=pk)
    user = request.user
    if request.method == "POST":
        form = price_form(request.POST)
        if form.is_valid():
            ps = form.save(commit=False)
            ps.user = request.user
            ps.status = True
            ps.post =  post
            ps.save()
            return redirect('Driver:Driverview')
    else:
        form = price_form()
    return render(request, 'price_form.html', {'form': form})

这是我的 html 添加帖子按钮

{% for loader in Loader %} 

这是循环,这是按钮

<a href="{% url 'Driver:price' pk=loader.pk %}" class="btn btn-full">add price</a>

你可以看到两个用户有不同的帖子,但它不是自动选择的

标签: pythondjango

解决方案


price它是和Loader_post模型之间的多对多关系,因此ps.post = post不起作用。您需要使用add()方法来添加新帖子。像这样:

ps.save()
ps.my_post.add(post)

推荐阅读