まず、循環Model
参照ではありません。それらについて多くの答えを見つけることができました。
設定でリマインダーを簡単に定義できるアプリを作成しています。したがって、REMINDERS
設定は次のようになります。
設定
REMINDERS = [
{
'reminder_id': 'my-id',
'reminder_class': 'students.reminders.ExpiredAvailabilityEmailReminder',
},
]
このアプリ ( reminders
) では、これらのリマインダーの基本クラスを提供します。これには、いくつかの既定の動作があります。リマインダーを定義するには、たとえば、次のことだけを行う必要があります。
students_app/reminders.py
from reminders.base_reminders import ReminderEmail
from .models import Student
class ExpiredAvailabilityEmailReminder(ReminderEmail):
template_name = 'students/emails/setting_expired.html'
def get_queryset(self):
return Student.objects.filter(
is_active=True,
setting_expired__lt=datetime.date.today())
リマインダーアプリ/管理/コマンド/send_reminders.py
管理コマンドは、このreminder_class
-string を でhandle
インポートdjango.utils.module_loading.import_by_path
しますが、これは次のエラーで失敗します:
django.core.exceptions.ImproperlyConfigured: Error importing module studenten.reminders: "No module named base_reminders"
循環参照になるからです。この問題に遭遇することなく、アプリのユーザーにサブクラス化可能な基本クラスを提供するにはどうすればよいですか?
ありがとう。