在 django 中,使用固定装置加载的 slug 字段检索数据库记录是一种不好的做法吗?



我正在开发一个代码库,原始开发人员在其中创建了一个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

相关内容

  • 没有找到相关文章

最新更新