Вопрос о формах, как мне получить мгновенный пользователь в поле формы pyhton django
Я создал некоторую функцию сообщений от пользователя к пользователю. У меня есть отправитель, получатель и текст, см. ниже. Пользователь должен выбрать свой email, а затем email, на который должно прийти сообщение. Но я хочу, чтобы пользователь не выбирал сам, мне нужна функция формы, которая мгновенно запрашивает request.user, но я не знаю, как это реализовать на форме. И чтобы пользователь не отображался в списке получателей. Извините за мой плохой английский, надеюсь вы меня поймете.
views.py
def mailEMployee(request):
mail = Mailsysthem.objects.filter(ontvanger=request.user)
receiver = Mailsysthem.objects.filter(ontvanger=request.user)
sender = Mailsysthem.objects.filter(zender=request.user)
user = CustomUser.objects.filter(email=request.user)
form = Mailsythemform()
if request.method == 'POST':
form = Mailsythemform(request.POST, request.FILES)
if form.is_valid():
form.save()
return redirect('mail')
context={
'form':form,
'receiver':receiver,
'sender':sender.all,
'mail':mail,
'user':user
}
return render(request,'emp/mail.html', context)
Forms.py
class Mailsythemform(forms.ModelForm):
class Meta:
model= Mailsysthem
fields= ['zender','ontvanger','subject','text']
models.py
class Mailsysthem(models.Model):
zender = models.ForeignKey(to=CustomUser, null=True, on_delete=models.SET_NULL,related_name='Zender')
ontvanger = models.ForeignKey(to=CustomUser, null=True, on_delete=models.SET_NULL,related_name='Ontvanger')
subject = models.CharField(null=True, max_length=200)
text = models.TextField(max_length=300, null=True, blank=True, verbose_name='Bericht')
date = models.DateTimeField(auto_now_add=True, blank=True)
solftdelete = models.BooleanField(default=False)
mail_opened = models.BooleanField(default=False)
url.py
path('mailemployee/', views.mailEMployee, name='mail'),
Вам необходимо предоставить начальное значение вашему ModelForm
(docs) следующим образом:
form = JournalForm(initial={'sender': user.id})