初心者Django質問:作成と更新のためのフォームに夢中になる

StackOverflow https://stackoverflow.com/questions/611575

  •  03-07-2019
  •  | 
  •  

質問

OK。 Djangoでフォームを作成しようとする結び目に縛られ、新しいレコードに関するデータを入力したり、既存のレコードを更新したりできます。

このモデルがあれば、誰でもフォーム、ビュー、URLに適切なものをスケッチできますか? :

class Person(models.Model) :
  name = models.CharField()
  age = models.IntegerField()

別のページで、個人の新しいインスタンスを作成するか、既存のインスタンスを編集できるフォームへのリンクが必要です。

私が混乱しているもの:

  • urls.pyには、idを渡さずに空白のフォームにリンクする行と、idを渡すときにフォームにリンクする行の2行が必要ですか?

  • インスタンスが保存される前にフォームを受け取るビューと、インスタンスが存在するときのビューの2つの異なるビューが必要ですか?

views.pyの1つのリンクと1つの関数でこれが行われたのは確かですが、もう正しく取得できないようです。動作していないように見えるのは、IDを持つURLの両方を送信しようとしている

  /edit/id

およびなし

  /edit/ 

idのデフォルト引数を持つ同じビュー関数へ

 def edit(request,id=0) :
    blah

では、これを行う正しい方法は何ですか?

乾杯。 phil

役に立ちましたか?

解決

urlに含まれている場合はid変数をキャプチャするようにurls.pyを設定し、views.pyでnullを確認します

urls.pyは次のようになります。

(r'^edit/(?P<person_id>\w+)/

次に、views.pyで:

def edit_person(person_id=None):
    if(person_id): #show populated form
    else: # show empty form
, 'mysite.myapp.views.edit_person'),

次に、views.pyで:

<*>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top