def test_set_model_changes_choices(self):
        class ModelA(models.Model):
            FIELD_CHOICES = [('foo', 'Foo'), ('bar', 'Bar')]

        class ModelB(models.Model):
            FIELD_CHOICES = [('baz', 'Baz'), ('qux', 'Qux')]

        f = LazyChoiceField(model=ModelA, choices_name='FIELD_CHOICES')
        self.assertEqual([('', '---------'), ('foo', 'Foo'), ('bar', 'Bar')], f.choices)

        f.model = ModelB
        self.assertEqual([('', '---------'), ('baz', 'Baz'), ('qux', 'Qux')], f.choices)
    def test_change_model_after_init(self):
        class ModelA(models.Model):
            FIELD_CHOICES = [('foo', 'Foo'), ('bar', 'Bar')]

        class ModelB(models.Model):
            FIELD_CHOICES = [('baz', 'Baz'), ('qux', 'Qux')]

        f = LazyChoiceField(model=ModelA, choices_name='FIELD_CHOICES')
        f.model = ModelB

        self.assertEqual('baz', f.clean('baz'))
        self.assertRaisesMessage(
            ValidationError, 'Select a valid choice. foo is not one of the available choices.',
            f.clean, 'foo',
        )