代码之家  ›  专栏  ›  技术社区  ›  Benjamin RD

Django将外部字段添加到查询

  •  1
  • Benjamin RD  · 技术社区  · 7 年前

    我有两张桌子: menu foodtype

    class Foodtype(models.Model):
        foodtype_en = models.TextField()
        active = models.BooleanField()
    
        class Meta:
            managed = False
            db_table = 'foodtype'
    
    class Menu(models.Model):
        title_en = models.TextField()
        description_en = models.TextField()
        active = models.BooleanField()
        id_foodtype = models.ForeignKey(Foodtype, models.DO_NOTHING, 
        id_home = models.ForeignKey('Home', models.DO_NOTHING, db_column='id_home')
    
        class Meta:
            managed = False
            db_table = 'menu'
    

    class MenuSerializer(serializers.ModelSerializer):
        foodtype_en = serializers.CharField()
        class Meta:
            model = Menu
            fields = ('id', 'title_en', 'active')
    

    我试着让所有人都活跃起来 菜单 记录。

    menu = Menu.objects.filter(id_home=3,active=True).annotate(foodtype=foodtype)
    

    我的问题出了什么问题?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Brown Bear    7 年前

    看起来是你的需要 source

    foodtype_en = serializers.CharField(source='id_foodtype.foodtype_en')