2012-02-27 11 views
2

私はモデルのようになり持っています、それはコンテンツの編集とそれにjavascriptの変数を渡した後、データベース内のジャンゴ「forms.ModelForm」を保存する方法:ジャンゴ・フォームにこれらのモデルを埋め込み新しい入力されたフィールド

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

をviews.pyで

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

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) 

で:次のコードによってAddress_form.html

{{ form.as_p }} 

iはコードの上に実行すると、それは私の二つのフィールド、すなわち及びを含むフォームを示しています。私は

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

最後に、この新しい作成したフィールドに次のJavaScriptの変数すなわちgmtHoursに合格することができていますようにするため、私は、このフォームを編集し、名前のGMTで新しいchar型のフィールドを追加したい場合は、テンプレートでsumbitボタン上のユーザーのクリックフォームコンテンツを保存します。つまり、

1. first 
2. second 
3. newly created gmtHours 

私はDjangoモデルで初心者です。あなたの助けをしたい:)

+0

問題はありますか? – Marcin

+0

-1何が正味の問題があり、今は大丈夫ですか? –

+0

あなたは助けが必要ではありません、私たちはあなたのためにこれを行うことを望みます。 – Marcin

答えて

3

日付を保持しますあなたのModelFormに隠しフィールドを追加します。

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

あなたはそれをJavaScriptで値を割り当てることができます。

+0

Thenx。上記の行を追加してから返す。私はフォームの内容を印刷しますが、それは次のページにリダイレクトされませんでした。 DjangoモデルとFormモデルを同時に使用している可能性があります。 フィールドを追加してDjangoモデルにいくつかの変更を加えて、ユーザーとやっているように隠れたレイヤーに入れるとどうなりますか? –

+0

それは動作します(日時はフォーム要素に隠され、dbに保存されます)。 –

+0

申し訳ありませんが、私はデータベースにチェックしていません:)。とにかく、私はこの状況で助けてください別の状況があります:私はtime_zoneモデルIntegerFieldを追加し、私が "ユーザー"と同じようにそれに隠させる。私はその隠しフィールドにJavaスクリプト変数を渡したいと思います。どうやってやるの。私はフォームをカスタマイズして試しましたが、動作しません。君の力が必要 :) –

関連する問題