Sent from my iPad

> On Sep 19, 2013, at 9:24 PM, Russell Keith-Magee <russ...@keith-magee.com> 
> wrote:
> 
> 
>> On Fri, Sep 20, 2013 at 10:53 AM, <gavinw...@gmail.com> wrote:
>> > Note that EmailUser *doesn't* have a Meta: swappable definition. There is 
>> > nothing on this model that says "I am swappable", or "I am an appropriate 
>> > substitute for User".
>> 
>> Ah, this is were the misunderstanding was. authtools does actually set 
>> swappable on its replacement user, too[1]. The two definitions look like 
>> this:
>> 
>>     class User(Model):
>>         username = models.CharField()
>>         USERNAME_FIELD = 'username'
>>         class Meta:
>>             swappable = 'AUTH_USER_MODEL'
>> 
>>     class EmailUser(Model):
>>         email = models.CharField()
>>         USERNAME_FIELD = 'email'
>>         class Meta:
>>            swappable = 'AUTH_USER_MODEL'
>> 
>> > How does Django identify that EmailUser *shouldn't* be synchronised to the 
>> > database? 
>> 
>> The existing swappable mechanism takes care of it. Only the model referenced 
>> by settings.AUTH_USER_MODEL will be installed, not both. 
> 
> Ah. Thats… interesting. I'm moderately surprised it works at all. I'll need 
> to dig in to the internals to work out *why* it works… swappable certainly 
> wasn't intended to work like that. There might be some interesting land mines 
> lying in wait.

Aha, I think I found at least some of my disconnect. But I tested this 
yesterday, and it definitely does do that.

I know I just asked this in a previous email, but I will repeat for ease of 
others possibly following this thread: can you provide a brief overview of what 
swappable *does* do? It seems to be on observation it does exactly this. You 
say it's intended to do something else. What is that something else?

L

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-developers+unsubscr...@googlegroups.com.
To post to this group, send email to django-developers@googlegroups.com.
Visit this group at http://groups.google.com/group/django-developers.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to