1
J'ai deux tables: menu
et foodtype
Django ajouter le champ à l'étranger une requête
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'
Aussi, je une table combinée généré:
class MenuSerializer(serializers.ModelSerializer):
foodtype_en = serializers.CharField()
class Meta:
model = Menu
fields = ('id', 'title_en', 'active')
Et je suis en train de faire tous les actifs menu
enregistrements.
Et je:
menu = Menu.objects.filter(id_home=3,active=True).annotate(foodtype=foodtype)
Quel est le problème avec ma requête?
Le problème le plus important que je vois est que vous essayez de trop près de la base de données. Laissez Django gérer toute cette clé étrangère, les noms de table et les colonnes pour vous! Vous obtiendrez un code beaucoup plus propre (donc plus facile à déboguer). –