2009-07-12 8 views
0
class Foo(models.Model) 
    field1 = models.IntegerField() 
    field2 = models.IntegerField() 
    bar_field = models.ForeignKey("Bar", null=True, blank=True) 

ビューでは、私はFoo pkを与えられており、対応するBarオブジェクトを取得して編集し、再度保存する必要があります。これを行うにはどうすればよいでしょうか?外部キーオブジェクトの編集

def my_view(request, foo_pk) 
    foo = get_object_or_404(Foo, pk=foo_pk) 

    bar = foo.bar_field 
    if not bar: 
     bar = Bar() 
     #bar = Bar(foo=foo) # this is normally how I would do it 
          # if I were using ManyToMany 

    bar_form = BarForm(instance=bar) #sent off to the view 

    #[...] 

    bar_form.save() #if bar_field was null, this won't get connected to Foo when saved 

問題は、私がBarの空のインスタンスを作成しても、Fooに接続されていないということです。 bar_formを保存すると、オブジェクトの保存/作成が行われますが、単なる単なる立場です。オブジェクトがすでに存在するときにも、存在しないときにもこのコードを再作成することができますか?終わり

答えて

0

foo.bar_field = bar 
foo.save() 
関連する問題