当前位置: 首页 > 网络应用技术

如何在Django模型类(Django模型字段)中设置中文代码

时间:2023-03-07 12:05:49 网络应用技术

  首席执行官在本文中指出,将介绍如何设置中文代码和Django模型字段的相关内容。我希望这对每个人都会有所帮助。让我们来看看。

  本文目录清单:

  1.如何在Django模型中使用多语言简单方法2.如果Django mysql中文乱码3,如何使Django中的管理员组件的字段显示为中文4. DJANGO英语com can,该怎么办不显示在UTF -8 Python encodingpypython Web编程计算机网站5.如何在管理员管理接口Django模型中显示中文名称使用Multi -Language -Supported快速方法。此方法在模型中选择重复的语言字段,以通过建立自定义模板标签来实现多语言显示的目的。然后,然后

  假设我们有这样的模型。PY,并且某个模型包含多个重复字段。每个重复字段都用于保留其相应的显示语言:

  类myobject(models.model):

  name = models.charfield(max_length = 50)

  title_en = models.charfield(max_length = 50)

  title_es = models.charfield(max_length = 100)

  title_fr = models.charfield(max_length = 100)

  description_en = models.charfield(max_length = 100)

  description_es = models.charfield(max_length = 100)

  Description_fr = Models.Charfield(max_length = 100)

  类myotherobject(models.model):

  name = models.charfield(max_length = 50)

  content_en = models.charfield(max_length = 200)

  content_es = model.charfield(max_length = 200)

  content_fr = model.charfield(max_length = 200)

  请注意,我们将线条和语言代码作为相应字段背后的后缀,将用作语言搜索标记。

  然后,我们添加了一个需要在settings.py中翻译的字段名称:

  translation_fields =('title','description','content')

  将TemplateTags目录添加到项目目录(不要忘记任何家庭__init__.py),并构建lazy_tags.py:

  从django导入模板

  从设置导入translation_fields

  寄存器= template.library()

  类局部content(template.node):

  def __init __(self,model,landaging_code):

  self.model =模型

  self.lang = language_code

  def渲染(自我,上下文):

  模型= template.Resolve_variable(self.model,context)

  lang = template.resolve_variable(self.lang,context)

  对于translation_fields中的f:

  尝试:

  setAttr(型号,F,getAttr(型号,'%s_%s'%(f,lang)))

  除了attributeError:

  经过

  返回 '??'

  @register.tag(name ='get_localized_content')

  def get_lot_localized_content(解析器,令牌):

  bits = list(token.split_contents())

  如果Len(位)!= 3:

  rish template.templatesyntaxerror(“'get_localized_content'标签完全取2个参数”)

  返回局部content(model = bits [1],language_code = bits [2])

  为了在模板中使用自定义标签,我们首先加载:

  {%加载lazy_tags%}

  然后使用自定义标签,传递对象和语言代码,然后进行翻译。例如,西班牙语:

  {%get_localized_content对象'es'%}

  目前,如果没有语言代码可以通过,则不能使用obj.descript来调用某个语言字段。因此,我们与django.core.context_processors.request合作,上下文处理器::

  template_context_processors =(

  Em

  'django.core.context_processors.request',

  治愈

  我们可以在模板中使用它:

  {%get_localized_content oppect.language_code%}

  创建所有.py文件时,编码方法必须为UTF-8,并且在# - * - 代码的前面添加了所有.py文件:UTF-8 - * - * -

  2.创建所有.html文件时,编码方法也必须为UTF-8,并且标签Meta HTTP-Equiv =“ content-type” content =“ text /html; charset; charset = utf-8“ /

  3.在MySQL安装目录中编辑my.ini配置文件。如果是my-default.ini,您可以将其更改为my.ini:

  在[mySQLD]标签下添加三行

  默认字符集= UTF8

  targin_set_server = utf8

  在[mySQL]标签下添加一行

  默认字符集= UTF8

  在[mysql.server]标签下添加一行

  默认字符集= UTF8

  在[mySQLD_SAFE]标签下添加一行

  默认字符集= UTF8

  在[客户端]标签下添加一行

  默认字符集= UTF8

  保存我的.ini,然后重新启动MySQL服务

  输入mySQL以查看字符集(mysqlshow变量,例如“ targin_set_%”;)

  4. Navicat设置

  ①数据库属性

  Django表单易于使用且易于扩展。因此,Django管理员和CBV基本上基于形式。实际上,由于Django形式的强大验证功能,大多数Django API框架都将表格作为其验证的一部分。尽管Django形成需要一些时间学习学习,但是如果形式,mod ...

  应该{%

  扩展

  “ base.html”

  报告%},您发布了此文件。

  在定义Django模型时,我喜欢使用驼峰命名方法,例如定义一个称为“ bookreviewweibo”的模型,它代表“ micro -reading book”。但是,当django的admin管理界面显示此模型的名称时,驼峰名称分为独立的单词,最后一个单词是复数。

  Django的国际接口的这个问题更麻烦,但不是必需的。模型的内部类元元。Model类有两个特殊的选项:ervose_name和ervorbose_name_plural.name.name_plural.name.name。模型,verbose_name_pluralze是此名称的复数形式。在正常情况下,我将使用中文的Verbose_name。由于中文没有区分单个复数,因此通常将同一中文字符串分配给verbose_name和verbose_name_plural。

  结论:以上是首席CTO介绍的有关Django模型类别的中文编码和Django模型字段的全部内容。我希望这对每个人都会有所帮助。如果您想进一步了解这一点,请记住网站。