繁体   English   中英

Django-如何在同一模型中基于另一个字段创建字段

[英]Django-How to create a field based on another field in the same model

我正在尝试使用功能pinyin() (正在工作并经过测试)为每个人创建一个存储该人姓名的拼音(将汉字翻译成字母)的字段。 但是我似乎name_pinyin基于同一模型中的名称字段来创建字段name_pinyin 这是解决此问题的正确方法吗? 提前致谢

from django.db import models
from xpinyin import Pinyin

class Person(models.Model):
    address = models.CharField(max_length500)
    name = models.CharField(max_length=200)
    name_pinyin = models.CharField(pinyin(name),max_length = 200)

    def pinyin(self):
        p=Pinyin()
        return p.get_Pinyin()(str(self),'') 
    #This is a function that returns pinyin of chinese characters

您可以使用模型保存方法,如下所示:

class Person(models.Model):
    address = models.CharField(max_length500)
    name = models.CharField(max_length=200)
    name_pinyin = models.CharField(pinyin(name),max_length = 200)

    def save(self, *args, **kwargs):
        self.name_pinyin = Pinyin(self.name)
        super(Person, self).save()

暂无
暂无

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

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