将默认值更改为函数djang

2024-06-01 05:20:23 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我试图改变默认语言根据一个用户之前所做的设置。我的问题是,我调用的函数的值是'English'或'Spanish',但我需要一个像'en'或'esp'这样的短词来让它真正工作。当我尝试运行它时,也会出现以下错误消息:userlang()只接受1个参数(给定0个)

以下是我尝试过的:

def userlang(self):
    return (self.user.userprofile.language)

class 123(models.Model
    language = models.CharField(verbose_name=_(u"Language"), 
               max_length=4, choices=settings.LANGUAGES,default=userlang)

我希望有人能帮我


Tags: 函数用户self语言消息参数englishmodels
1条回答
网友
1楼 · 发布于 2024-06-01 05:20:23

你可以用这样的东西:

class CustomModel(models.Model):
    language = gender = models.CharField(
        max_length=2,
        choices=(('en', 'English'),('es', 'Spanish')),
        default=None,
        blank=True,
        null=True
    )

然后就可以直接使用了

当然,如果你有上百种语言的可能性,你应该做一个单一的联想,而不是使用这样的模式

顺便说一句,你的例子格式和书写都很糟糕。对于您所遇到的错误,只需删除函数参数中的“self”。。。只有当它是类方法时才需要它

相关问题 更多 >