Как переопределить метод save () класса modelform и добавил недостающую информацию? - PullRequest
3 голосов
/ 20 декабря 2010

Я только начал изучать Джанго, и у меня возник вопрос.

Я пытаюсь автоматически добавить недостающую информацию при сохранении данных формы. Я могу изменить / добавить нужную информацию «cleaned_data», переопределив метод save () класса modelform, но изменения не записываются в базу данных. Собственно, как записать измененную информацию? Это код:

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 голосов
/ 21 декабря 2010

Попробуйте установить данные на self.instance вместо self.cleaned_data, и дайте мне знать, если это работает.

...