2008-08-31 16 views
2

現在、私は最初のプロジェクトとして製品ベースのCMSを少し書いています。Djangoの既存のモデルにデータを追加するにはどうすればよいですか?

ここは私の質問です。製品モデルに追加データ(製品)を追加するにはどうすればよいですか?

私はurls.pyに '/ admin/products/add'を追加しましたが、そこからどこに行くのか本当に分かりません。ビューとテンプレートの両方をどのように構築するのですか?私は実際に多くのPythonを知っているわけではありません。私はDjangoの新機能です。

この既存のdjango管理インタフェースを使用せずにどうすればいいですか?

+0

あなたの質問のタイトルは少し誤解を招くかもしれません。モデルクラスの代わりにモデルが一般的に使用されます。私は、「ビューを使って新しいモデルインスタンスを作成するにはどうすればいいですか」というタイトルが優れていると思います。 – muhuk

答えて

7

URLをDjango create_object generic viewに接続し、 "model"(作成するモデル)または "form_class"(カスタマイズしたModelFormクラス)のいずれかに渡します。多くの場合、other argumentsがあり、デフォルト動作を上書きすることもできます。最も単純なケースのための

サンプルのURLconf:

from django.conf.urls.defaults import * 
from django.views.generic.create_update import create_object 

from my_products_app.models import Product 

urlpatterns = patterns('', 
    url(r'^admin/products/add/$', create_object, {'model': Product})) 

あなたのテンプレートはあなただけ< form>タグでラップし、送信ボタンを追加する必要があるコンテキスト変数「フォーム」を、取得します。最も簡単な作業テンプレート(デフォルトでは「my_products_app/product_form.html」に行く必要があります):あなたの製品モデルははget_absolute_urlメソッドを持っている必要があります、または他のビューにpost_save_redirectパラメータを渡す必要があることを

<form action="." method="POST"> 
    {{ form }} 
    <input type="submit" name="submit" value="add"> 
</form> 

注意。そうしないと、保存後にリダイレクト先を知ることができません。

-1

アプリケーションの「管理」部分を設定するためのDjangoチュートリアルに従ってください。これにより、データベースを変更することができます。

Django Admin Setup

また、あなたはちょうどあなたが使用しているものは何でもデータベースタイプのための標準ツールを使用してデータベースに直接接続することができます。

関連する問題