0
으로 변경되므로 사용자가 이전에 설정 한대로 기본 언어를 변경하려고합니다. 내 문제는 인스턴트 메신저 호출의 가치는 '영어'또는 '스페인어'이지만 실제로 작동하게하려면 'en'이나 'esp'와 같은 짧은 단어가 필요합니다. 나는 그것을 실행하려고 할 때 나는이 오류 메시지가 : userlang()가 정확히 (주어진 0) 1 개 인자를 그래서 여기기본값이 django
내가 뭘하려 :
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)
나는 누군가가 나를 도울 수 있기를 바랍니다 아웃.
class CustomModel(models.Model):
language = gender = models.CharField(
max_length=2,
choices=(('en', 'English'),('es', 'Spanish')),
default=None,
blank=True,
null=True
)
그 다음은 간단히 사용 할 수가있다 :
내가 먼저 해봤지만 userlang이 정의되지 않았기 때문에 작동하지 않습니다. 그 이름은 원래 포스트가 아니고 고맙습니다. – hansTheFranz
'userlang' 함수에서'self' 파라미터를 지우고 사용하십시오. 물론, 내부에서'self'를 참조하고 있기 때문에, 이것은 작동하지 않을 것입니다. 이것에 대한 임시 해결 방법은'default'를 제거 (또는 그것을 유지하고'LANGUAGES' 선택에서 하나 설정)하고 ['save']를 오버라이드하는 것입니다 (https://docs.djangoproject.com/en/1.10/). topics/db/models/# overriding-model-methods) 메소드를 호출하고 거기에 값을 설정합니다. –