Получение значения из формы с помощью django dajax - PullRequest
1 голос
/ 24 июля 2011

У меня есть следующая модель:

class Usage(models.Model):

    region = models.ForeignKey(Region)
    territory = models.ForeignKey(Territory)
    usage_in_month = models.ForeignKey(UsageInMonth)

    def __unicode__(self):
        return '%s' % self.region

У меня есть форма модели, в которой я пытался дать имя, класс и идентификатор для project_form:

self.fields['usage_in_month'].widget.attrs['onchange'] = "Dajaxice.projects.update_usage_in_month(Dajax.process,{'option':this.value, 'current':this.id, 'form': $('project_form').serialize(true)})"

Это проходит через ajax.py, который содержит:

@dajaxice_register
def update_usage_in_month(request, option, current, form):
    dajax = Dajax()
    form = ProjectForm(form)

    # As the first ID has no prefix current is shorter
    if current[:40] == 'id_usages-tvusage-content_type-object_id':
        current_short = current[:42]
        current_usage_in_month = '#' + current_short + '-usage_in_month'
        current_suggested_rate = '#' + current_short + '-suggested_rate'

    else:
        # Current is longer for other IDs
        current_short = current[:82]
        current_usage_in_month = '#' + current_short + '-usage_in_month'
        current_suggested_rate = '#' + current_short + '-suggested_rate'

    cpa_rate = UsageInMonth.objects.get(id=option).cpa_rate
    dajax.assign(current_suggested_rate,'value',cpa_rate)
    return dajax.json()

У меня нет проблем с этим.Моя проблема заключается в доступе к форме до возврата dajax.json () для получения значения из нее.Я пробовал form.cleaned_data ['территория'], а также form.cleaned_data.get ('территория').Я отследил проблему до формы, передаваемой в представление через форму, поскольку она кажется пустой, поэтому

self.fields['usage_in_month'].widget.attrs['onchange'] = "Dajaxice.projects.update_usage_in_month(Dajax.process,{'option':this.value, 'current':this.id, 'form': $('project_form').serialize(true)})"

, похоже, не работает

Все, что я естьПопытка сделать это - получить значение одного поля, которое на самом деле не передается во всей форме, но это единственный способ, которым я могу получить данные, которые мне нужны.Есть ли лучший способ?

...