class UserProfile(models.Model):
project_assignments = models.ManyToManyField('drawingManager.Project', default=SetDefaultProject(self,default_assignment))
user = models.OneToOneField(User)
default_project
def SetDefaultProject(self,default_assignment):
if default_assignment:
self.default_project = default_assignment
else:
self.default_project = #somehow choose newest project
def __unicode__(self):
admin_reference = self.user.first_name + self.user.last_name
return admin_reference
私は以下の動作を達成しようとしています。ユーザーが追加されると、少なくとも1つのプロジェクト割り当てがデフォルトで設定されます。また、後で、オプションインタフェースを介して、デフォルトをproject_assignmentsのサブセットのいずれかに設定することができます。しかし、あなたが外部キーと多対多フィールドをPythonコードとして使用することができないときとできないときは、私には分かりません。DjangoはManyToManyモデルフィールドのサブセットとしてデフォルトを設定します
私の混乱でした。私はMany to Manyフィールドがクエリーセットを返したことに気付かなかった。だから、私はself.project_assignments.order_by(-date_added)[0]のように、プロジェクトにdate_addedというフィールドがあり、最新のプロジェクトを取得していると仮定して、self.default_project = self_default_project = – cmay