1
- 私はプロジェクトを保存しています。
- これは、プラクティショナーのインラインモデルを持っています。
- Practitionerモデルのdef saveでは、別のレコードをSimple Authという別のテーブルに挿入するカスタムコードを実行しています。
私の考えは、私がviews.pyでやっているように、実務家にプロジェクトのインスタンスを渡すと、def saveが自己のプロジェクトを参照できるということでした。インラインのdef保存時に余分なレコードを保存する親IDレコードを取得できません
だから私のviews.pyは以下のようになります。
def form_valid(self, form):
practitioner_form = context['practitioner_form']
if practitioner_form.is_valid():
self.object = form.save(commit=False)
self.object.slug = slugify(self.object.title)
self.object.save()
practitioner_form.instance = self.object
practitioner_form.save()
return HttpResponseRedirect(reverse('profile_detail', kwargs={'username':user.username}))
else:
return self.render_to_response(self.get_context_data(form=form))
マイプラクティショナDEF、このようになります保存:何らかの理由simpleauth.project = self.project
について
def save(self, *args, **kwargs):
if SimpleAuth.objects.filter(project=self.project,name=self.practitioner_name).exists():
simpleauth = SimpleAuth.objects.get(project=self.project,name=self.practitioner_name)
simpleauth.project = self.project
simpleauth.name = self.practitioner_name
simpleauth.save()
else:
SimpleAuth.objects.create(project = self.project, name = self.practitioner_name)
super(Practitioner, self).save(*args, **kwargs)
を任意の値を持っていないようです。なぜ私はこのようなプロジェクトIDを得ることができないのですか?
ちょうどメモ。私は管理者を介して私のプロジェクトを作成する場合、それはすべて動作します。これは私の形では機能しません。