2

ユーザーがアクセスしようとしているURLに基​​づいて、データベースにオブジェクトを作成するにはどうすればよいのでしょうか。

たとえば、/ schedule / addbid / 1 /に移動すると、テーブルに、入札の所有者、入札したスケジュール、および入札が完了したかどうかを含むオブジェクトが作成されます。これは私がこれまでの入札のために私のモデルのために持っているものです。

class Bids(models.Model):
   id = models.AutoField("ID", primary_key=True, editable=False,)
   owner = models.ForeignKey(User)
   biddedschedule = models.ForeignKey(Schedule)
   complete = models.BooleanField("Completed?", default=False)

この場合の1はスケジュールテーブルの最初のスケジュールであるため、入札スケジュールはURLの番号に基づきます。

これを行う方法についてのアイデアはありますか?

4

3 に答える 3

5

id次を使用してパラメータを取得する必要がありますurls.py

#urls.py
from appname.views import some_view

urlpatterns = patterns('',
    url(r'^schedule/addbid/(?P<id>\d+)$', some_view),
    ...
)

urlconfでのパラメータのキャプチャに関するドキュメントをご覧ください。

次に、渡されたURL、現在ログインしているユーザー()、およびDBからのを使用してオブジェクトをviews.py作成する必要があります。例えば:Bidsidrequest.userbiddschedule

#views.py
def some_view(request, id):
    if request.user.is_authenticated():
        # get the biddschedule from your DB
        # ...
        bids = models.Bids(id=id, owner=request.user, biddedschedule=biddedschedule)
        bids.save()
        return HttpResponse("OK")
    return Http404()
于 2012-12-05T19:07:01.260 に答える
2

urlconfを介して番号をキャッチします。を介して現在のユーザーを取得しますrequest.user。コンストラクターを呼び出してモデルインスタンスを作成し、そのsave()メソッドを介してデータベースに保存します。

于 2012-12-05T18:56:04.567 に答える
-1
`#view.py under a post or get method`

    new_bird, created = Bids.objects.get_or_create(
         owner = user_obj,
          biddedschedule = biddedschedule_obj,                
          complete = bool
          )
    new_bird.save()
于 2021-04-24T10:40:14.750 に答える