广告区
广告区
关注本站官方公众号:程序员总部,领取三大福利!
福利一:python和前端辅导
福利二:进程序员交流微信群,专属于程序员的圈子
福利三:领取全套零基础视频教程(python,java,前端,php)
发布于2022-05-18 03:20 阅读(143) 评论(0) 点赞(8) 收藏(4)
我正在尝试从 Oracle DB 中集成一些表,这不是我的 Django 项目的一部分。该数据库有两个我感兴趣的表,第一个有 90% 的信息,第二个有剩余的 10%。我为这些表编写了 2 个模型,如下所示:
class MoreRelevantModel(models.Model):
FIELD_1 = models.IntegerField(primary_key=True, db_column="PK_COL_NAME")
FIELD_2 = models.CharField(max_length=40, blank=True, db_column="CHAR_VALUE_COL_NAME")
FIELD_3 = models.BooleanField(default=False, db_column="BOOL_VALUE_COL_NAME")
class Meta:
managed = False
db_table = '"SomeOracleSchema"."SomeOracleTableName"'
class LessRelevantModel(models.Model):
FIELD_1 = models.IntegerField(primary_key=True, db_column="PK_COL_NAME")
FIELD_2 = models.CharField(max_length=40, blank=True, db_column="CHAR_VALUE_RELATED_TO_MoreRelevantModel_COL_NAME")
FIELD_3 = models.BooleanField(default=False, db_column="BOOL_VALUE_COL_NAME")
class Meta:
managed = False
db_table = '"SomeOracleSchema"."SomeOracleTableName"'
我想完全省略在我的业务逻辑中调用 LessRelevantModel 模型的需要,而我只想调用 MoreRelevantModel,并让它从其对应的 LessRelevantModel 条目 FIELD_3 值中自动拉出。我想出了这样写的想法:
class MoreRelevantModel(models.Model):
FIELD_1 = models.IntegerField(primary_key=True, db_column="PK_COL_NAME")
FIELD_2 = models.CharField(max_length=40, blank=True, db_column="CHAR_VALUE_COL_NAME")
FIELD_3 = models.BooleanField(default=False, db_column="BOOL_VALUE_COL_NAME")
class Meta:
managed = False
db_table = '"SomeOracleSchema"."SomeOracleTableName"'
@cached_property
def _LESS_RELEVANT_ENTRY(self):
matching_entry = LessRelevantModel.objects.filter(FIELD_2=self.FIELD_2)
return matching_entry[0] if matching_entry.count() > 0 else None
@cached_property
def LESS_RELEVANT_ENTRY_FIELD_3(self):
return self._LESS_RELEVANT_ENTRY.FIELD_3 if self._LESS_RELEVANT_ENTRY else None
上述逻辑类型有效,但根据特定 MoreRelevantModel 条目的请求,它不会自动将值拉入 LESS_RELEVANT_ENTRY_FIELD_3。我宁愿它这样做。有没有任何以 Django 为主题的简洁方式来实现这一点?
关注本站官方公众号:程序员总部,领取三大福利!
福利一:python和前端辅导
福利二:进程序员交流微信群,专属于程序员的圈子
福利三:领取全套零基础视频教程(python,java,前端,php)
关注公众号回复python,免费领取 全套python视频,回复充值+你的账号,免费为您充值1000积分
作者:黑洞官方问答小能手
链接:https://www.pythonheidong.com/blog/article/1523234/7f2cba2309b4b93da351/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!