我需要为从DB返回的数据添加一些其他信息。例如,DB中的“名称”字段为Person,我需要在表单上显示时添加“{”,“}”。我认为'django.forms.fields'模块中'Field'类的方法bound_data是我需要的。但似乎它用于其他目的。它在提交表单时工作,并且由于任何原因验证失败 - 只是为了不丢失正确的数据。
那么如何为我的'name'字段实现一些装饰呢?
答案 0 :(得分:2)
我在'django.forms.fields'模块的Field类中找到了'prepare_value'方法,它对来自DB的数据或字段的一些初始数据进行了一些操作。所以我在'MyField'中覆盖了这个方法并将所有装饰工作放在其中。它允许您使用多个模型字段,因此猜测它比 unicode 方法更好。
但还是要感谢戈兰。
答案 1 :(得分:1)
你没有解释你需要它的情况。我遇到了类似的问题,我在 unicode
中解决了这个问题class Person(models.Model):
name = models.CharField(max_length=150)
def __unicode__(self):
return '%s,' % self.name
现在在表单内部,您将拥有模型的unicode,当您只需要名称时,您可以使用person.name。希望它有所帮助。