Прежде всего, речь идет не о круге Model
ссылок. Я мог найти много ответов о них.Команда управления Django: предоставить базовый класс без круговой ссылки
Я создаю приложение, которое позволит вам легко определить напоминания в ваших настройках. Поэтому установка 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())
reminders_app/Управление/Команды/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"
Потому что он стал с круговой ссылкой. Как я могу предоставить пользователям моего приложения подклассы базового класса, не сталкиваясь с этой проблемой?
Спасибо.
Почему это круговая ссылка? Вы импортируете базовый класс, если да, то почему? –
Вы должны вызвать файл 'reminders.py'? – alecxe