Django的。来自DB的预处理数据

时间:2011-09-28 18:09:05

标签: django django-forms

我需要为从DB返回的数据添加一些其他信息。例如,DB中的“名称”字段为Person,我需要在表单上显示时添加“{”,“}”。我认为'django.forms.fields'模块中'Field'类的方法bound_data是我需要的。但似乎它用于其他目的。它在提交表单时工作,并且由于任何原因验证失败 - 只是为了不丢失正确的数据。

那么如何为我的'name'字段实现一些装饰呢?

2 个答案:

答案 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。希望它有所帮助。