私のDjangoアプリには、いくつかの異なるタイプのユーザーがいます。私のプロジェクトモデルでは、pm列を「プロジェクトマネージャー」グループにのみ属するユーザーオブジェクトに制限したいと思います。SEを参照して少しグーグルした後、「limit_choices_to」を追加してQオブジェクトを割り当てました。
ただし、失敗すると確信していたTestCaseを設定すると、どのユーザーも午後として追加できるようです。以下のモデルとテストケース:
class Project(models.Model):
name = models.CharField(max_length=50, unique=True)
tracker = models.IntegerField(max_length=5)
pm = models.ForeignKey('auth.User', limit_choices_to=Q(groups__name = 'Project Manager'))
class ProjectTestCase(TestCase):
def setUp(self):
self.name = 'Crappy Project'
self.tracker = 38493
self.pm = User.objects.create_user('username', 'user@example.com', 'password')
proj = Project.objects.create(name=self.name, tracker=self.tracker, pm=self.pm)
proj.save()
def test_proj_creation(self):
# Check stored values
proj_zero = proj_in_db[0]
self.assertEquals(proj_zero.name, self.name)
self.assertEquals(proj_zero.pm, self.pm)
ユーザーをどのグループにも割り当てなかった場合に、テストが合格し続ける理由を理解しようとしています。また、「groups__name」はどこに文書化されていますか?Djangoのドキュメントでそれを参照することはできません。