【发布时间】:2013-02-03 14:30:53
【问题描述】:
我正在开发一个 django 自定义字段。在自定义字段 def 中,我如何编写一些代码来保存另一个字段?例如,在自定义字段的 def 中,我编写了 pre_save 方法,但是在将值分配给其他模型字段之后,我调用了 model_instance.save() 方法,但这导致了无限循环。你能告诉我怎么做吗?
class FullNameField(models.CharField):
def contribute_to_class(self, cls, name):
firstname_field = models.CharField(
null=True, blank=True, max_length=50)
lastname_field = models.CharField(
null=True, blank=True, max_length=50)
firstname_field.creation_counter = self.creation_counter
lastname_field.creation_counter = self.creation_counter
cls.add_to_class('firstname', firstname_field )
cls.add_to_class('lastname', lastname_field )
super(FullNameField, self).contribute_to_class(cls, name)
上面的代码在syncdb期间成功创建了新字段firstname和lastname,我想要做的是,当我填充fullname字段时,firstname和lastname也应该被填充。这个全名逻辑只是一个例子,但要求是一样的。
【问题讨论】:
-
请出示您的代码。从您的描述中不清楚您要做什么。
-
每当我填充自定义字段时,此自定义字段背后的代码都会动态创建一些额外的字段。没事。同时,我想填充创建的额外字段,但不能这样做。我该怎么做?
-
请展示您的代码和/或其中的片段,并解释您要做什么。您最后的评论只会给这个问题增加更多的混乱。
-
添加代码@bikeshedder