質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.44%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

387閲覧

DjangoでSend_mail関数の中に 条件文を作りたい

Tomato_leaf

総合スコア173

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2023/03/20 05:57

実現したいこと

DjangoでSend_mail関数の中に
条件文を作りたい

前提

DjangoでSend_mailの中に
条件文を書こうとしていますがエラーになり、原因が掴めません。。

発生している問題・エラーメッセージ

potential arugument cannot apper after keyword aurgument

イメージ説明

該当のソースコード

Django

1 send_mail( 2 subject='New message', 3 message='Access to http://localhost:3000/messagerooms', 4 from_email=settings.EMAIL_HOST_USER, 5 # 質問者(inquiry_user)がログインユーザー(self.request.user)なら 6 if inquiry_user == self.request.user: 7 # メールの送り先は投稿者のメールアドレス(post.user.email) 8 recipient_list = post.user.email 9 # 投稿者(post.user)がログインユーザー(self.request.user)なら 10 elif post.user == self.request.user: 11 # メールの送り先は質問者のメールアドレス(inquiry_user.email) 12 recipient_list = inquiry_user.email 13 )

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

if inquiry_user == self.request.user: recipient_list = [post.user.email] elif post.user == self.request.user: recipient_list = [inquiry_user.email] else: raise ValueError("Can't determine recipient") send_mail( subject="New message", message="Access to http://localhost:3000/messagerooms", from_email=settings.EMAIL_HOST_USER, recipient_list=recipient_list, )

でうまくいきました

投稿2023/03/20 07:35

Tomato_leaf

総合スコア173

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

関数呼び出しの中にif文は入れられませんので、関数呼び出しの前に判断して設定するようにすればいいでしょう。

python

1 # 質問者(inquiry_user)がログインユーザー(self.request.user)なら 2 if inquiry_user == self.request.user: 3 # メールの送り先は投稿者のメールアドレス(post.user.email) 4 recipient_list = post.user.email 5 # 投稿者(post.user)がログインユーザー(self.request.user)なら 6 elif post.user == self.request.user: 7 # メールの送り先は質問者のメールアドレス(inquiry_user.email) 8 recipient_list = inquiry_user.email 9 10 send_mail( 11 subject='New message', 12 message='Access to http://localhost:3000/messagerooms', 13 from_email=settings.EMAIL_HOST_USER, 14 recipient_list = recipient_list 15 )

投稿2023/03/20 06:52

TakaiY

総合スコア12928

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Tomato_leaf

2023/03/20 07:36

ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.44%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問