繁体   English   中英

使用Django通过default()将用户语言保存在模型中

[英]Save user language in a model through default() with Django

我想在每次创建新的模型实例时保存用户的语言:

models.py:

def getlanguage(request):
    lang = request.LANGUAGE_CODE
    return lang


class Comment(models.Model):
    language = models.CharField(max_length=100, blank=True, default=getlanguage)

Django生成以下错误:TypeError:getlanguage()恰好接受1个参数(给定0)

如何将请求传递给函数?

谢谢!

您的保存方法需要像这样被覆盖。

class Comment(models.Model):
    language = models.CharField(max_length=100, blank=True, default='')

    def save(self, *args, **kwargs):
        default_language = kwargs.pop('default_language', None)
        if not self.language and default_language is not None:
            self.language = default_language
        super(Comment, self).save(*args, **kwargs)

当在视图中的对象上调用save()时,您可以传递参数

comment = Comment()
comment.save(default_language=request.LANGUAGE_CODE)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM