2017-11-23 12 views
0

私は変更ボタンをクリックして、ブートストラップのdiv部分によって実装された新しいウィンドウの情報を書き留めます。ただし、私のデータベースはまったく変更されません。無視してください...コードでは、乱雑に見える属性を削除します。コードは手動でバグを見つけるために書き留めたのでタイプミスができますが、見つけられませんでした。django入力フォームからデータにアクセスする方法

私はview.pyで試しましたが、address_modifyはHttpresponse(street)を返しますが、Noneを返しました。

view.py

def address_modify(request, adid): 
cat = get_object_or_404(Address, adid=adid) 
if request.method == "POST": 
    old_adid = adid 
    email = request.user.email 
    street = request.POST.get("street", None) 
    city = request.POST.get("city", None) 
... 
    Address.objects.filter(adid=adid).update(..., street=street, city=city, state=state, ...) 
    return redirect('/address/') 
return redirect('/address/') 

テンプレート(私はそれをaddress.html名)

<button class="btn btn-success" data-toggle="modal" data-target="#modify">MODIFY</button> 
<div class ="model fade" id="modify" role="dialog"> 
<div class="modal-dialog"> 
<div class="modal-content"> 
<div class="modal-header"> 
<from action="" method="POST">{% csrf_token %} 
</div> 
<div class="modal-body"> 
<input type="text" name="street"> 
<input type="text" name="city"> 
... 
... 
<input type="text" name="zipcode"> 
</div> 
<div class="modal-footer"> 
<a href="{% url 'address_modify' i.adid %}">{% csrf_token %} 
<button type="button" class="btn btn-primary">Save Change</button></a> 
<div></form> 

urls.pyはジャンゴで

url(r'^address_modify/(?P<adid>[0-9]+)/$', MyAppView.address_modify, name='address_modify'), 

答えて

1

ベストプラクティスは、forms.pyを作成することですフォームを処理するためのファイルは、本当に簡単にそれのdoumentationを読むことができます、基本的にフォームは、すべてのデータ再読み込み。

0

これは、フォームとフォームの送信を実装する方法ではありません。あなたのリンクは何も送信していない、ただリンクを開いているだけです。これは、標準形式の構文は次のとおりです。

<form method="POST"> 
    {% csrf_token %} 
    ... your form input fields here ... 
    <input type="submit" value="Save changes"> 
</form> 

フォームを提出しなければなりません。注:type="submit"があります。

次に、Djangoにはフォーム機能があります。これを使って。 @ Saumel-Omoleのようにforms.pyを作成してください。モデルアドレスの形式は次のようになります。

class AddressForm(forms.ModelForm): 
    class Meta: 
     model = Address 
     fields = '__all__' 

その後、あなたのようなフォームを使用するようにビューを変更:official Django tutorial以上

def address_modify(request, adid): 

    cat = get_object_or_404(Address, adid=adid) 
    form = AddressForm(instance=cat) 
    if request.method == 'POST': 
     form = AddressForm(request.POST, instance=cat) 
     if form.is_valid(): 
      form.save() 
      return redirect('/address/') 
     else: 
      print(form.errors) # change to logging 

     return render(request, 'address.html', {'form': form}) 

移動します。これらの基本はすべてそこにあります。おそらく、それを経験するには1-2日かかるかもしれませんが、長期的には、基本的なもののために数日間推測やグーグルグーグルではないでしょう。

関連する問題