[英]Django how to get all the column names from the given sql table (model.py)
[英]django graphene how to get a list of fields from the model.py
我正在使用 graphql 和 django。 我的 model.py 可能看起来像:
from django.db import models
class MyModel(models.Model):
field_a = models.CharField(max_length=100)
field_b = models.CharField(max_length=100)
field_c = models.CharField(max_length=100)
如何获取不同 class(即 schema.py)中所有字段的列表?
from .models import MyModel
model_fields = MyModel.__dict__
没有给我一个字段列表。 谢谢你的建议
简短的回答:
model_fields = MyModel._meta.fields
长答案:
如果您想在不明确写出字段的情况下处理不同的模型,您可能希望在石墨烯的内置功能中使用。 您可以使用graphene_django库来执行此操作
所以假设你在models.py中有这个:
class ModelA(models.Model):
field_a = models.CharField(max_length=100)
class ModelB(models.Model):
field_b = models.CharField(max_length=100)
然后在 schema.py 你可能想要这样做:
import graphene
from graphene_django import DjangoObjectType
from .models import ModelA, ModelB
class ModelAType(DjangoObjectType):
class Meta:
model = ModelA
class ModelBType(DjangoObjectType):
class Meta:
model = ModelB
这些将创建一个石墨烯 object 并为您复制 model 字段。 您甚至可以在以下位置添加其他字段:
class ModelBType(DjangoObjectType):
class Meta:
model = ModelB
model_a = graphene.Field(ModelA)
def resolve_model_a(self, info)
return ModelA.objects.filter(field_a=self.field_b)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.