У меня есть приложение, в котором основной пользователь добавляет субпользователя и отправляет ему электронное письмо.Я хочу, чтобы у суб-пользователя была кнопка в шаблоне электронной почты, которая привела бы его / ее к форме обратной связи.В URL этой формы обратной связи должно быть указано имя пользователя, поскольку оно дает индивидуальный подход.Но я не понимаю, как мне передать данные субпользователя и сохранить данные обратной связи с данными.Я создам сценарий, чтобы вы, ребята, лучше понимали.
1. Существует основной пользователь Крис , Крис добавляет подчиненного пользователя Леон в его списке адресов электронной почты.(PS оба являются резидентами. Злые персонажи). 2. Крис отправляет Леону электронное письмо , Леон получает электронное письмо и, если он хочет, может оставить отзыв, нажав кнопку обратной связи в письме. 3. Если Леон нажмет кнопку, он будет перенаправлен на страницу, где URL может быть примерно таким (www.feedback/Leon.com) , там будет форма, где Леондобавит свой отзыв и отправит.
Проблема заключается в том, как сохранить обратную связь Леона в модели FeedBack через форму электронной почты с его информацией из модели субпользователя (PersonData).
models.py
class FeedBack(models.Model):
feedback = models.TextField('Feedback')
user_feedback = models.ForeignKey(PersonData)
class PersonData(models.Model):
user_relation = models.ForeignKey(User)
person_first_name = models.CharField("First Name", max_length=25)
person_last_name = models.CharField("last Name", max_length=25)
person_email = models.EmailField("Email", max_length=512)
views.py
# class FeedBackCreateView(CreateView):
# model = FeedBack
# template_name = "userfiles/FeedBack.html"
# def form_valid(self, form):
# obj = form.save(commit=False)
# obj.user_feedback_id = self.request.persondata_id
# obj.save()
# return redirect("Home-Page")
def feedback(request, username):
person_data = PersonData.objects.get(person_first_name=username)
item = FeedBack.objects.all().filter(user_feedback=person_first_name)
form = FeedBackForm
if request.method == 'POST':
if form.is_valid():
form.save(commit=False)
profile.employee_name = user
profile.save()
return redirect('Home-Page')
context = {'all_item': all_item}
return render(request, 'userfiles/AlbumPicsList.html', context)
------------------------------------------------------------------
#This View is from another app called salami. This sends the email
------------------------------------------------------------------
def send_email(request, s_id, pr_id):
salami_data = SalamiCalculator.objects.get(id=s_id)
person_data = PersonData.objects.get(id=pr_id)
context = {'salami_data': salami_data,
'person_data': person_data}
subject = "Thank You"
email_from = settings.EMAIL_HOST_USER # email from
to_email = [person_data.person_email] # email to
msg = EmailMultiAlternatives()
msg.from_email = email_from
msg.to = to_email
msg.subject = subject
msg.body = salami_data.thankyou_msg
html_body = render_to_string("salamifiles\email-thanks.html")
html_template = get_template("salamifiles\email-thanks.html")
html_content = html_template.render(context)
msg.attach_alternative(html_content, "text/html")
msg.send()
messages.success(request, ("Email Sent !!"))
return render(request, 'salamifiles\email-thanks.html', context)
url.py
url(r'^(?i)Feedback/(?P<user_feedback>\w+)/$',
AlbumPicturesDetail.as_view(), name='Album-Pictures-View'),
==============================================
Salami URL
==============================================
url(r'^Congratsmail/(?P<s_id>[0-9]+)/(?P<pr_id>\d+)/$',
views.send_email, name='Congrats-EMAIL'),
forms.py
class FeedBackForm(forms.ModelForm):
class Meta:
model = FeedBack
fields = ("feedback")
email.html
Have Not Yet modified the email template by adding the button
Шаблон отправки электронной почты
{% for i in items %}
<a href={% url 'Congrats-EMAIL' s_id=i.id pr_id=i.realted_person.id %}>Send Mail</a>
{% endfor %}
========================================================================
Я ожидаю, что когда Крис отправит Леону электронное письмо, Леон, нажав на кнопку, будет перенаправлен на страницу, где URL имеет его имя, и форма уже знает, что он Леон, чтобы сохранить данные против его идентификатора /имя.