首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取数据库表中不存在的自定义列?

如何获取数据库表中不存在的自定义列?
EN

Stack Overflow用户
提问于 2018-06-21 07:12:51
回答 1查看 66关注 0票数 1

如何在django rest框架中实现以下SQL查询

代码语言:javascript
复制
`SELECT `id` , `name_hi` as hi , `name_en` as en ,  false as `checked` FROM `tab_name` 

在数据库表中不存在选中的地方,即它不是列。

代码语言:javascript
复制
id | hi | en | checked
1  | xx | xx | 0
2  | hi2| en2| 0
3  | hi3| en3| 0

我正在使用Django Rest框架。如何重命名这些字段(也包括已检查的字段)

到目前为止,我已经尝试了序列化程序。

代码语言:javascript
复制
class TabSerializer(serializers.ModelSerializer):
	 hi = serializers.CharField(source='name_en')
	 en = serializers.CharField(source='name_en')

    class Meta:
        model = Tab
        fields =('id','name_en','name_hi')

它只返回id name_en和name_hi,而不考虑hi、en和checked。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-21 07:38:36

在列别名的序列化程序中设置它。

  1. 对于列表别名

代码语言:javascript
复制
class TabSerializer(serializers.ModelSerializer):
	 hi = serializers.CharField(source='name_hi')
	 en = serializers.CharField(source='name_en')

    class Meta:
        model = TabFaultOption
        fields =('id','hi','en')

  1. 现在,对于数据库中不存在的列,需要更改相关模型。

model.py

代码语言:javascript
复制
class Tab(models.Model):
    id = models.IntegerField()
    name_hi = models.CharField(max_length=1000)
    name_en = models.CharField(max_length=1000)
    checked=False
    
    class Meta:
        managed = False
        db_table = 'tab'

现在,在序列化器中包括已检查的列。

代码语言:javascript
复制
 class TabSerializer(serializers.ModelSerializer):
    	 hi = serializers.CharField(source='name_en')
    	 en = serializers.CharField(source='name_en')
       checked= false
        class Meta:
            model = Tab
            fields =('id','hi','en','checked')

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50962496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档