0
models.pydjangoでフォームを使用しているモデルのauto increment IDにアクセスする方法は?上記のコードで
class Publisher(models.Model):
name = models.CharField(max_length=30)
address = models.CharField(max_length=50)
city = models.CharField(max_length=60)
state_province = models.CharField(max_length=30)
country = models.CharField(max_length=50)
def __unicode__(self):
return self.name
class Author(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=40)
email = models.EmailField()
def __unicode__(self):
return u'%s %s' % (self.first_name, self.last_name)
class Book(models.Model):
title = models.CharField(max_length=100)
authors = models.ManyToManyField(Author, blank=True)
publisher = models.ForeignKey(Publisher, blank=True, null=True)
def __unicode__(self):
return self.title
forms.py
class Books(forms.ModelForm):
class Meta:
model = Book
fields = ('title', 'authors', 'publisher',)
class Authors(forms.ModelForm):
class Meta:
model = Author
fields = ('first_name', 'last_name', 'email',)
class Publishers(forms.ModelForm):
class Meta:
model = Publisher
fields = ("id","name", 'address', 'city', 'state_province', 'country',)
views.py
def demo(request):
form1 = Books(request.POST)
form2 = Authors(request.POST)
form3 = Publishers(request.POST)
if (form1.is_valid() & form2.is_valid() & form3.is_valid()):
form3.save()
form2.save()
// Here I want to access id of just saved data of Model Publisher and Model Authors
form1.cleaned_data['publisher'] = form3.data['id']
return render(request, 'files/demo.html', {'form1': form1, 'form2': form2, 'form3': form3})
私は、単一のビューですべてのモデルのすべてのデータを保存したい。しかしerrroですそのBookモデルはPublisherとのForenignKey関係を持ち、Publisherは保存されたデータのIDを識別する一意のデータを持ちません。だから、私の本当の問題は、どのように私は `
form3.save()とform2.save()
`私は非常に混乱しているを使用してデータが保存されている出版社や著者IDにアクセスできるということです複数のモデルデータを同時に保存し、それらの間のforenignkey関係を処理します。保存
この多対多リレーションシップを使用する前に、エラー ""にフィールド "book"の値を設定する必要があります。 –
Amit
申し訳ありませんが、テストせずにコードを記述するのは難しいですが、 – dkarchmer