【问题标题】:DJANGO - Pass Table Name In Function [duplicate]DJANGO - 在函数中传递表名 [重复]
【发布时间】:2016-08-30 15:06:45
【问题描述】:

我正在尝试学习如何通过函数传递表变量名。因此,例如,假设我有一个如下所示的模型

Bio(models.Model):
    name = models.CharField(max_length=200)
    address = models.CharField(max_length=200)
    country = models.CharField(max_length=200)

现在我希望能够通过函数传递表名。所以通常我会做一个

people = Bio.objects.all()
for x in people:
    print x.name

我希望能够通过类似这样的函数传递“名称”变量...

def print_name(variable):
    people = Bio.objects.all()
    for x in people:
        print x.variable

print_name(name)

我不确定我应该研究什么。谢谢。

【问题讨论】:

    标签: python django


    【解决方案1】:

    你可以这样做

    def print_name(variable):
        everyone= Bio.objects.all()
        for x in everyone:
            print x.__getattribute__("name")
    
    print_name("name")
    

    【讨论】:

      【解决方案2】:

      这个怎么样...

      print x.__dict__[variable]
      

      现在您可以将此变量作为字符串传递。希望这会有所帮助。

      【讨论】:

      • 但是name 是一个类属性。会出现在__dict__吗?
      • 修改后:是的,请尝试
      • 不,名称不是类属性。不过,__dict__ 仍然不是最好的方法。
      【解决方案3】:

      尝试关注

      def print_name(variable):
          people = Bio.objects.all()
          for x in people:
              print getattr(x, variable)
      
      print_name(name)
      

      可能是这个帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-07-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多