在Django中,依赖某些模型实例的应用的最佳实践是什么?

时间:2018-06-21 17:41:11

标签: python django

在Django项目中,我们有一个模型SessionType,该模型的category外键为SessionCategory。数据库中存在一个函数create_checkin_sessions,该函数期望具有某个SessionCategoryname的{​​{1}}。如果不是,则会记录错误:

'Guide Check In'

问题在于,每个import logging from lucy_web.models import Session, SessionType, SessionCategory logger = logging.getLogger(__name__) class SessionCategory(models.Model): name = models.CharField(max_length=255, unique=True) class SessionType(models.Model): category = models.ForeignKey('lucy_web.SessionCategory') GUIDE_CHECKIN_CATEGORY = "Guide Check In" def create_checkin_sessions(family): _check_guide_checkins_category() session_number = 1 session_types = SessionType.objects.filter(category__name=GUIDE_CHECKIN_CATEGORY)\ .order_by('enterprise_checkin_ordering').all() for session_type in session_types: Session.objects.create( session_type=session_type, session_number=session_number, family=family) session_number += 1 def _check_guide_checkins_category(): """Check whether the expected session category for guide check-ins exists""" if not SessionCategory.objects.filter(name=GUIDE_CHECKIN_CATEGORY).exists(): logger.error(f"A session category for guide check-ins, '{GUIDE_CHECKIN_CATEGORY}', " "is expected to exist, but was not found in the database.") 的{​​{1}}在内部仪表板中是可编辑的。如果更改name,此函数将引发错误,而理想情况下,我们希望所有内容继续像以前一样工作。

由于这个原因,我正在考虑添加一个像SessionCategory这样的字段,并在当时的数据迁移中使用name填充它,并使用original_name而不是name从此开始,作为会话的“标识符”。

在我看来,这个问题以前必须已经解决过。有什么脚本可以处理这种情况?

0 个答案:

没有答案