我的usermodel中有两个字段:
country = models.CharField(max_length=20, null=True)
code = models.CharField(max_length=2, null=True)
我希望第二次在我进入我的国家后自动更改,我知道如何在python shell中执行此操作,但我如何在django中执行此操作?
我试图在模板中打印两位数代码。
编辑:我这样做了:class UserProfile(models.Model):
...
country = models.CharField(max_length=20, null=True)
code = models.CharField(max_length=2, null=True)
def save(self,*args, **kwargs):
name=country
self.code = pycountry.countries.get(name).alpha2
super(UserProfile, self).save(*args, **kwargs)
pycountry代码没问题,这是我在python shell中获取代码的方式,但是 当我在管理页面中更改国家/地区时代码正在抛出
global name 'country' is not defined
答案 0 :(得分:0)
请参阅模型上的django文档:https://docs.djangoproject.com/en/1.9/topics/db/models/
你想要这样的东西:
class YourModel(models.Model):
country = models.CharField(max_length=20, null=True)
code = models.CharField(max_length=2, null=True)
def save(self,*args, **kwargs):
if self.country == foo: #this can be any logic you use to assign the code value
self.code = a_value
else:
self.code = another_value
super(YourModel, self).save(*args, **kwargs)
这应该是你正在寻找的东西。如果您发现任何问题,请告诉我,希望它有所帮助!