0

ForeignKey を持つユーザーに関連付けられたフィールドを持つモデルがあります。ユーザーがアクションを実行したときにそのユーザーに電子メールを送信する必要があります。私の質問は電子メールを送信することではなく、その電子メールを取得する方法です。アプリは次のように動作します: ユーザーは多くのオプション (ボタンをクリック) の 1 つを選択し、そのボタンは DetailView を介して user_id を含むモデルの ID を呼び出し、そのボタンがクリックされるとメールを送信します。私の見解:

class NotificationEmail(DetailView):
    model = Articles
    template_name = 'email.html'

    def dispatch(self, request, *args, **kwargs):
        p = Articles.objects.filter(pk=self.kwargs['pk'])
        for articles in p:
            print (articles.user_id__email)     
            to = articles.user_id__email
            html_content = '<p>This is your email content...</p>'
            msg = EmailMultiAlternatives('You have an email',html_content,'from@server.com',[to])
            msg.attach_alternative(html_content,'text/html')
            msg.send()
            return super(NotificationEmail, self).dispatch(request, *args, **kwargs)    

モデル:

class Articles(models.Model):
    name = models.CharField(max_length=100)
    user = models.ForeignKey(User)

私の質問は基本的に、そのモデルの ID を持つユーザーのメールを取得するにはどうすればよいですか? これがフィールドを検索する方法だとarticles.user_id__email思いますが、それが間違っていることはわかっていますが、どうすればこれを達成できますか?

4

1 に答える 1

2

Articles クラスに user フィールドがある場合、関連するユーザーの電子メールを取得するには、次のようにする必要があります。

articles.user.email
于 2015-05-07T05:23:43.007 に答える