我正在开发一个代码库,原始开发人员在其中创建了一个ProductType model
,其中数据库中有几行代表几种产品类型。在整个代码中,有类似ProductType.objects.get(slug='foo_product_type')
的语句。如果灯具未加载ProductType
记录slug = 'foo_product_type'
,这些语句将导致硬崩溃。使用辅助信息域'foo_product_type'
定义ProductType
的最佳实践是什么?似乎python代码不应该依赖于加载的夹具,但我真的想不出另一种解决方案。对于您的服务器逻辑来说,依赖于某些数据库字段感觉是一种不好的做法,但我不确定我能想到另一种方法。
我已经在模型定义中使用了choices=
,但这似乎更多地是为了数据完整性,而不是加载带有price
等详细信息的记录,因此这对我没有帮助。我目前在迁移新数据库后加载灯具,这有效,但我很好奇是否有人有更好的解决方案。
if ProductType.objects.get(slug='foo_product_type'):
当ProductType
与 slug'foo_product_type'
不存在时。
加载夹具时,将抓取对象以在代码中使用。当记录丢失时,应用程序崩溃。
你应该使用try-except:
try:
product_type = ProductType.objects.get(slug='foo_product_type')
...
except ProductType.DoesNotExist:
# handle exception here