【问题标题】:how to use choices field in different way when creating model's object创建模型对象时如何以不同方式使用选择字段
【发布时间】:2020-03-31 20:06:18
【问题描述】:

我创建了一个带有 choises 字段的模型

class Workers(models.Model):
      city_choice=(

                   ('1120','vegas'),
                   ('1104','newyork'),
                   ('1122','sandiego')

                  )

       BirthPlace=models.CharField(choices=city_choice,max_length=10)

在 django shell 中,我想用 city_name 而不是 city_code 创建模型对象

obj=Workers(BirthPlace='vegas')
obj.save()

但这行不通 我该如何处理这个程序

【问题讨论】:

    标签: django django-models


    【解决方案1】:

    您可以创建一个方法或数据结构,允许您将选择标签转换为值。

    class Workers(models.Model):
        city_choices = (
            ('1120','vegas'),
            ('1104','newyork'),
            ('1122','sandiego')
        )
        city_to_value = {city: value for value, city in city_choices}
    
        BirthPlace=models.CharField(choices=city_choice,max_length=10)
    

    现在您可以在创建对象时使用此字典

    Workers(BirthPlace=Workers.city_to_value['vegas'])
    

    【讨论】:

      【解决方案2】:

      我执行以下操作,似乎一切正常,但出现此错误:

      KeyError at /main/import_workers/
         ''
      

      【讨论】:

        猜你喜欢
        • 2020-10-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-14
        • 2017-11-17
        • 2010-11-05
        相关资源
        最近更新 更多