Автоматическая передача id из одной таблицы в другую в форме с помощью ForeignKey в Django

#HELP в python (DJANGO 4)

Я отправляю это сообщение сюда, потому что не смог найти ответ в другом месте. Сейчас я нахожусь в проекте, где мне нужно создать форму бронирования. Цель состоит в том, что когда пользователь отправляет форму бронирования, я отправляю данные в BDD, и я получаю идентификатор пользователя по отношению (ForeignKey). И моя трудность заключается именно в этом, когда я отправляю свою форму в BDD, я восстанавливаю информацию, кроме id пользователя... Я создал отношение Foreignkey между двумя таблицами и вижу это отношение в BDD, но я не получаю id таблицы User, а получаю null в place..... Кто-нибудь из вас знает, как мне помочь, пожалуйста? Спасибо всем.

--Мой model.py --

class Reservation(models.Model):
    fullName = models.CharField('Nom Complet', max_length=250, null=True)
    adress = models.CharField('Adresse', max_length=100, null=True)
    zip_code = models.IntegerField('Code Postal', null=True)
    city = models.CharField('Vile', max_length=100, null=True)
    email = models.EmailField('Email', max_length=250, null=True)
    phone = models.CharField('Telephone', max_length=20, null=False)
    date = models.CharField('Date', max_length=20, null=True, blank=True)
    hour = models.CharField('Heure', max_length=20, null=True, blank=True)
    message = models.TextField('Message', null=True)
    accepted = models.BooleanField('Valide', null=True)
    created_at = models.DateTimeField('Date Creation', auto_now_add=True, null=True)
    modified_at = models.DateTimeField('Date Mise Jour', auto_now=True, null=True)
    user = models.ForeignKey(User, null=True, on_delete=models.SET_NULL)

def __str__(self):
    return self.fullName

-- мой views.py --

    @login_required()
def user_new_reservation(request, pk=None):
    user = User.objects.get(id=pk)

    if request.method == 'POST':
        form = ReservationForm(request.POST)
        if form.is_valid():
            form.save()
            messages.success(request, 'Votre réservation a bien été envoyé!')
            return redirect('reservation:user_reservation', pk=request.user.id)
    else:
        form = ReservationForm()

    context = {'form': form}
    return render(request, 'reservation/new_reservation.html', context)

-- Мой Form.py --

class ReservationForm(forms.ModelForm):
class Meta:
    model = Reservation
    fields = [
        'fullName',
        'adress',
        'zip_code',
        'city',
        'email',
        'phone',
        'date',
        'hour',
        'message',
    ]

Спасибо вам всем.

Внутри вашей формы.save используйте:

form.save(user=request.user)

user=имя вашего поля в вашей модели

request user= в django, когда вы используете аутентификацию, вы можете получить доступ к некоторой информации на основе запроса, такой как пользователь и другие

Удачи

Вернуться на верх