Как сохранить Django "forms.ModelForm" в базе данных после редактирования содержимого и передачи переменной javascript в новое введенное поле - PullRequest
2 голосов
/ 27 февраля 2012

У меня модель выглядит следующим образом:

class filled(stateobject):
    first = models.IPAddressField(verbose_name=_("First address"))
    second = models.CharField(max_length=39, verbose_name=_("Second address")

Встраивание этих моделей в Django-формы с помощью следующего кода:

class hostCreateForm(forms.ModelForm):
    class Meta:
        model = filled
        widgets = {
            'user': forms.HiddenInput()
        }

In views.py:

def address_create(request):
if required.method=='POST':
    form = HostCreateForm(request.POST)
if form.is_valid():
    host = form.save()
    return redirect_to(request, url=host.get_absolute_url())
extra_context = {
       'form': HostCreateForm(initial={'user': request.user.pk})
    }
      return direct_to_template(request, 'networks/Address_form.html', extra_context)

In: Address_form.html

{{ form.as_p }}

Когда я запускаю над кодом, он показывает мне форму, содержащую два поля: first и second .Я хочу отредактировать эту форму и добавить новое поле char с именем GMT, чтобы я мог передать следующую переменную javascript, т.е. gmtHours, в это новое созданное поле

var d = new Date()
var gmtHours = -d.getTimezoneOffset()/60;

Наконец, когда пользователь нажимает кнопку sumbitв шаблоне он сохраняет содержимое формы, т.е.

 1.  first
 2.  second
 3.  newly created gmtHours

Я новичок в Django-модели.Нужна ваша помощь:)

1 Ответ

3 голосов
/ 27 февраля 2012

Добавьте скрытое поле к вашему ModelForm, в котором будет храниться дата:

class hostCreateForm(forms.ModelForm):
    class Meta:
        model = filled
        widgets = {
            'user': forms.HiddenInput()
        }
    # additional hidden field
    datetime = forms.DatetimeField(widget=forms.HiddenInput)

Затем вы можете присвоить ему значение в JavaScript.

...