Django 1.5 estender o modelo do usuário padrão ou substituí-lo

Env: Django 1.5.1 + Django CMS 2.4.1 + Zinnia mais recente + meus aplicativos personalizados + plugin customizado do Django CMS

Basicamente eu posso estender o modelo de usuário padrão do Django (1.5.X) comoTutorial Django Ribbit no NetTuts +

ou

Substitua um modelo completamente personalizado comoDjango Dev doc ou exemplo de Django2Scoops no parágrafo: "Lidando com o modelo do usuário"

Para testar, eu decidi pelo livro Subclass AbstractUser From Django2Scoops: "Escolha esta opção se você gosta dos campos do modelo User do Django do jeito que eles são, mas precisa de campos extras .."

Mas tenho os seguintes erros:

notification.noticesetting: 'user' define uma relação com o modelo 'auth.User', que foi trocado. Atualize a relação para apontar para settings.AUTH_USER_MODEL. cmsplugin_zinnia.latestentriesplugin: 'autores' define uma relação com o modelo 'auth.User', que foi trocado. Atualize a relação para apontar para settings.AUTH_USER_MODEL.

cms.pageuser: 'created_by' define uma relação com o modelo 'auth.User', que foi trocado. Atualize a relação para apontar para settings.AUTH_USER_MODEL. cms.pageusergroup: 'created_by' define uma relação com o modelo 'auth.User', que foi trocado. Atualize a relação para apontar para settings.AUTH_USER_MODEL.

Depois de horas de leitura e teste eu encontrei

Especificando o modelo de usuário personalizado (estende AbstractUser) não funciona

Como a mensagem de erro diz, é necessário atualizar a relação para apontar para settings.AUTH_USER_MODEL. O segundo erro ("Modelo foi desativado ...") é um efeito colateral do fato de você estar referenciando diretamente o modelo User. Depois de alterar as referências ForieignKey, este terceiro erro desaparece. Fizemos tudo o que podemos para garantir uma transição suave para o novo modelo de usuário, mas não pode ser completamente transparente. Os criadores de aplicativos precisarão atualizar seus aplicativos para serem compatíveis com 1,5. Essencialmente, um aplicativo do Django 1.4 não será 100% compatível com o Django 1.5 se ele contiver uma referência de chave estrangeira codificada para o Usuário. Por favor, você poderia me dar mais exemplos?

EDjango / Python: atualiza a relação para apontar para settings.AUTH_USER_MODEL

em settings_example.py você tem AUTH_USER_MODEL = 'users.User'. No entanto, você está usando um app - menu.bookmark - que tem uma relação com django.contrib.auth.User - você não pode ter ambos. Definir AUTH_USER_MODEL significa que você está substituindo o modelo de usuário do Django integrado com o seu. Vejohttp://procrastinatingdev.com/django/using-configurable-user-models-in-django-1-5/ para detalhes.

Mas eu não entendo como posso resolver isso.

O que eu precisaria:

-Os usuários estão vinculados à classe Institutes (um instituto -> mais usuários)

-Users ou Institutes podem ter permissões diferentes e ver diferentes páginas / plugins do django cms.

-Vários mais campos para o usuário.

Subclasse AbstractUse o ponto correto?

Como posso resolver o erro "trocado"?

Eu deveria criar algo semelhante aoCódigo OpenTreeMap

Este código não é preterido?

Obrigado!

questionAnswers(2)

yourAnswerToTheQuestion