如何重写modelform类的save()方法并添加缺失信息?
我刚开始学习Django,有个问题想问一下。
我想在保存表单数据的时候,自动添加缺失的信息。我可以通过重写modelform类的save()方法来修改或添加想要的“cleaned_data”信息,但这些更改并没有记录到数据库里。实际上,怎么才能把修改后的信息写入数据库呢?这是代码:
def save(self, commit = True, *args, **kwargs):
temp = ServiceMethods(url = self.cleaned_data.get('url'), wsdl_url = self.cleaned_data.get('wsdl_url'))
if not temp.get_wsdl_url():
temp.make_wsdl_url()
if temp.get_wsdl_url():
temp.make_wsdl()
self.cleaned_data['wsdl_url'] = temp.get_wsdl_url()
self.cleaned_data['wsdl_description'] = temp.get_wsdl_description()
super(ServiceForm, self).save(commit = commit, *args, **kwargs)
还有模型:
class Services(models.Model):
name = models.CharField('Имя', max_length=256)
url = models.URLField('Ссылка', unique = True)
wsdl_url = models.URLField('Ссылка на WSDL-документ', blank=True)
description = models.TextField('Описание сервиса',blank=True)
wsdl_description = models.TextField('WSDL описание', blank=True, editable=False)
added = models.DateTimeField('Добавлено', auto_now_add=True)
谢谢大家!
1 个回答
2
试着把数据放在 self.instance
里,而不是放在 self.cleaned_data
里,看看这样是否有效。