簡體   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