Django:set language

dz6r00yl  于 2023-11-20  发布在  Go
关注(0)|答案(1)|浏览(123)

我对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()}'

字符串

iqih9akk

iqih9akk1#

通常,您可以构建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')来填充它。
接下来我们在ProfileLanguage之间添加一个**ManyToManyField**[Django-doc]:

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',)

相关问题