提问人:SpicyyRiice 提问时间:11/9/2023 更新时间:11/9/2023 访问量:21
Django:设置语言
Django: set language
问:
我是 Django 的新手
我想在管理面板中创建一个语言字段,管理员可以设置用户的语言,可以是 1 种或多种语言。例如,第 1 个人会说英语、法语和日语,而另一个人只会说法语。我们怎样才能做到这一点?
我的用户模型如下所示
型:
from django.contrib.auth.models import User
# Create your models here.
class Profile(models.Model):
def __str__(self):
return f'{self.user.get_full_name()}'
答:
1赞
willeM_ Van Onsem
11/9/2023
#1
通常,您可以构建一个模型,例如:Language
class Language(models.Model):
code2 = models.CharField(max_length=2, primary_key=True)
name = models.CharField(max_length=128, unique=True)
def __str__(self):
return self.name
我们可以填充它,例如用 和 和 。('en', 'English')
('fr', 'French')
('ja', 'Japanese')
接下来,我们在 和 之间添加一个 ManyToManyField
[Django-doc] :Profile
Language
class Profile(models.Model):
languages = models.ManyToManyField(Language, related_name='speakers')
def __str__(self):
return f'{self.user.get_full_name()}'
在管理中,我们可以通过以下方式更方便地选择语言:
from django.contrib import admin
class ProfileAdmin(admin.ModelAdmin):
# …
autocomplete_fields = ('languages',)
评论