Django: пост не выбирается автоматически конкретным пользователем - PullRequest
0 голосов
/ 04 мая 2020

Привет, я работаю над проектом, в котором я использую данные нескольких пользователей, пользователь сделал сообщение на сайте, и когда водитель видит это сообщение, он добавляет свое предложение к этому сообщению, но когда водитель отправляет сообщение ... на уровне администратора конкретный выбирается автоматически, но сообщение не выбирается, по которому он добавляет цену. Это мое сообщение 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>

as u can see the two user have different post but it is not selected automatically

1 Ответ

2 голосов
/ 04 мая 2020

Это отношение ManyToMany между price и Loader_post моделью, поэтому ps.post = post не будет работать. Вам нужно использовать метод add(), чтобы добавить новое сообщение. Как это:

ps.save()
ps.my_post.add(post)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...