使用Django中的ForeignKey以表单形式自动将id从一个表发送到另一个表



#HELP in python(DJANGO 4(

我在这里发这条信息是因为我在其他地方找不到答案。目前,我正在进行一个项目,我必须创建一个预订表格。目标是,当用户提交预订表单时,我在BDD中发送数据,并通过关系(ForeignKey(检索用户的id。我的困难正是在这一点上,当我在BDD中发送表单时,我会恢复信息,除了用户的id…我在我的两个表之间建立了Foreignkey关系,我在BDD中看到了这种关系,但我没有收到User表的id,但在这个地方为null…。你们中有人知道如何帮助我吗?谢谢大家。

--我的型号.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

--我的观点.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)

--我的表单.py--

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

谢谢大家。

在表单内部。保存使用:

user = form.save(commit=False)
user.user = request.user
user.save()

user=您的型号中的字段名称

请求用户=在django中,当您使用身份验证时,您可以访问基于请求的一些信息,如用户和其他

祝好运

最新更新