Glad that you got it working!

admin.autodiscover is actually already included in the urls.py of
Mezzanine's project template (check out line 10),
https://github.com/stephenmcd/mezzanine/blob/master/mezzanine/project_template/urls.py

If you create a project using the mezzanine-project command you don't need
to do anything extra.

On Wed, Sep 24, 2014 at 10:36 AM, Jérôme Sivadier <[email protected]>
wrote:

> I have finally found the answer of this completely crazy stuff looking at
> Django's documentation for Django 1.7 ! Here :
> https://docs.djangoproject.com/en/1.7/ref/contrib/admin/#django.contrib.admin.autodiscover
> it says that until Django 1.7 you needed to call "admin.autodiscover()" by
> yourself. And Mezzanine uses autodiscover in its LazyAdmin, but it is never
> called in Django 1.6 until the user calls it explicitly !
>
> So as a conclusion : if you use *Django 1.6.x, add*
> admin.autodiscover()
>
> At the end of your *admin.py* application's file !
> Hope this will help, my problem is now fixed!
>
> Le vendredi 12 septembre 2014 16:39:57 UTC+2, Stephen McDonald a écrit :
>>
>> My test app that contains my profile model is at the top of
>> INSTALLED_APPS too. The order is important, but any importance is forced
>> into place by the call to `set_dynamic_settings` at the end of the settings
>> module (I believe it forces mezzanine.boot to the top) - if you've removed
>> it, that could explain it.
>>
>> Otherwise I'd suggest trying a new project with no modifications other
>> than adding an app with a profile model, the relevant settings, and nothing
>> else. Presumably that should work - you'll then be in a position to apply
>> your changes to it step by step, until you can reproduce the error. That
>> will at least help you isolate the problem.
>>
>> Good luck.
>>
>>
>>
>>
>> On Sat, Sep 13, 2014 at 12:33 AM, Jérôme Sivadier <[email protected]>
>> wrote:
>>
>>> Maybe it's my settings.py file then :/ The order of INSTALLED_APPS and
>>> shouldn't be important, should it?
>>> Here's my order just in case :
>>> INSTALLED_APPS = (
>>>     "myApp_theme",
>>>     "myApp",
>>>     "django.contrib.admin",
>>>     "django.contrib.auth",
>>>     "django.contrib.contenttypes",
>>>     "django.contrib.messages",
>>>     "django.contrib.redirects",
>>>     "django.contrib.sessions",
>>>     "django.contrib.sites",
>>>     "django.contrib.sitemaps",
>>>     "django.contrib.staticfiles",
>>>     "mezzanine.boot",
>>>     "mezzanine.conf",
>>>     "mezzanine.core",
>>>     "mezzanine.generic",
>>> #    "mezzanine.blog",
>>> #    "mezzanine.forms",
>>>     "mezzanine.pages",
>>> #    "mezzanine.galleries",
>>>     "mezzanine.twitter",
>>>     "mezzanine.accounts",
>>>     #"mezzanine.mobile",
>>> )
>>>
>>>
>>>
>>> Le vendredi 12 septembre 2014 16:28:20 UTC+2, Stephen McDonald a écrit :
>>>>
>>>> I didn't use one.
>>>>
>>>> On Sat, Sep 13, 2014 at 12:26 AM, Jérôme Sivadier <[email protected]>
>>>> wrote:
>>>>
>>>>> Thanks for your answer. Could you post your gunicorn configuration
>>>>> file? I have certainly made some errors in this part of my project :/
>>>>>
>>>>> Le vendredi 12 septembre 2014 16:25:12 UTC+2, Stephen McDonald a
>>>>> écrit :
>>>>>>
>>>>>> I'm unable to reproduce this - works fine for me with the same
>>>>>> gunicorn version.
>>>>>>
>>>>>> On Thu, Sep 11, 2014 at 6:40 PM, Jérôme Sivadier <[email protected]
>>>>>> > wrote:
>>>>>>
>>>>>>> Hello,
>>>>>>>
>>>>>>> I've digged for one day to find what is the problem and here is an
>>>>>>> interesting conclusion : Mezzanine was the problem because of
>>>>>>> mezzanine.boot.lazy_admin.
>>>>>>> Let me explain a bit :
>>>>>>>
>>>>>>> So I am using Mezzanine (3.0.10) + Gunicorn (19.1.1) and I
>>>>>>> discovered model registration does not have the same behaviour using the
>>>>>>> built-in Django webserver and using Gunicorn. Indeed when I use 
>>>>>>> Gunicorn,
>>>>>>> all custom models calling *admin.site.unregister* and then
>>>>>>> *admin.site.register* (for instance *User*) are not updated in
>>>>>>> Django.
>>>>>>>
>>>>>>> After a lot of debugging (based on file writing), I realized that :
>>>>>>> * On the first call of *admin.site.register(User, UserAdmin)* (by
>>>>>>> Django), *django.contrib.admin.sites.AdminSite.register* is called
>>>>>>> and then *mezzanine.boot.lazy_admin.LazyAdminSite.register(User,
>>>>>>> UserAdmin)*
>>>>>>> * Then Mezzanine calls *admin.site.unregister(User)* but it doesn't
>>>>>>> go to AdminSite.unregister, it only goes to LazyAdminSite.unregister
>>>>>>> * After this, Mezzanine calls *admin.site.register(User,
>>>>>>> UserProfileAdmin)* but it doesn't go to AdminSite.register, it goes
>>>>>>> right to LazyAdminSite.register
>>>>>>> ...
>>>>>>> And so on.
>>>>>>>
>>>>>>> In the end, only Mezzanine's LazyAdminSite knows what is the "real"
>>>>>>> admin model associated with the given model class but Django does not !
>>>>>>> Here is a trace of the register/unregister calls done by Mezzanine
>>>>>>> and Django :
>>>>>>> REGISTER <class 'django.contrib.auth.models.Group'>
>>>>>>> MEZZANINE REGISTER <class 'django.contrib.auth.models.Group'> AS <
>>>>>>> class 'django.contrib.auth.admin.GroupAdmin'>
>>>>>>> calling super...
>>>>>>> REGISTER <class 'django.contrib.auth.models.User'>
>>>>>>> MEZZANINE REGISTER <class 'django.contrib.auth.models.User'> AS <
>>>>>>> class 'django.contrib.auth.admin.UserAdmin'>
>>>>>>> calling super...
>>>>>>> MEZZANINE UNREGISTER <class 'django.contrib.auth.models.User'>
>>>>>>> MEZZANINE REGISTER <class 'django.contrib.auth.models.User'> AS <
>>>>>>> class 'mezzanine.core.admin.SitePermissionUserAdmin'>
>>>>>>>
>>>>>>> MEZZANINE UNREGISTER <class 'django.contrib.auth.models.User'>
>>>>>>> MEZZANINE REGISTER <class 'django.contrib.auth.models.User'> AS <
>>>>>>> class 'mezzanine.accounts.admin.UserProfileAdmin'>
>>>>>>>
>>>>>>> MEZZANINE UNREGISTER <class 'django.contrib.auth.models.User'>
>>>>>>> MEZZANINE REGISTER <class 'django.contrib.auth.models.User'> AS <
>>>>>>> class 'bm_marketplace.admin.CustomUserProfileAdmin'>
>>>>>>>
>>>>>>> REGISTER <class 'django.contrib.redirects.models.Redirect'>
>>>>>>> MEZZANINE REGISTER <class 'django.contrib.redirects.models.Redirect'
>>>>>>> > AS <class 'django.contrib.redirects.admin.RedirectAdmin'>
>>>>>>> calling super...
>>>>>>> REGISTER <class 'django.contrib.sites.models.Site'>
>>>>>>> MEZZANINE REGISTER <class 'django.contrib.sites.models.Site'> AS <
>>>>>>> class 'django.contrib.sites.admin.SiteAdmin'>
>>>>>>> calling super...
>>>>>>> REGISTER <class 'mezzanine.conf.models.Setting'>
>>>>>>> MEZZANINE REGISTER <class 'mezzanine.conf.models.Setting'> AS <class
>>>>>>> 'mezzanine.conf.admin.SettingsAdmin'>
>>>>>>> calling super...
>>>>>>> REGISTER <class 'mezzanine.generic.models.ThreadedComment'>
>>>>>>> MEZZANINE REGISTER <class 'mezzanine.generic.models.ThreadedComment'
>>>>>>> > AS <class 'mezzanine.generic.admin.ThreadedCommentAdmin'>
>>>>>>> calling super...
>>>>>>> REGISTER <class 'mezzanine.pages.models.Page'>
>>>>>>> MEZZANINE REGISTER <class 'mezzanine.pages.models.Page'> AS <class
>>>>>>> 'mezzanine.pages.admin.PageAdmin'>
>>>>>>> calling super...
>>>>>>> REGISTER <class 'mezzanine.pages.models.RichTextPage'>
>>>>>>> MEZZANINE REGISTER <class 'mezzanine.pages.models.RichTextPage'> AS
>>>>>>> <class 'mezzanine.pages.admin.PageAdmin'>
>>>>>>> calling super...
>>>>>>> REGISTER <class 'mezzanine.pages.models.Link'>
>>>>>>> MEZZANINE REGISTER <class 'mezzanine.pages.models.Link'> AS <class
>>>>>>> 'mezzanine.pages.admin.LinkAdmin'>
>>>>>>> calling super...
>>>>>>> REGISTER = Django's AdminSite.register()
>>>>>>> MEZZANINE REGISTER = Mezzanine's LazyAdminSite.register()
>>>>>>>
>>>>>>>
>>>>>>> So I have tried to Monkey-patch LazyAdminSite.register() by calling
>>>>>>> super on register and unregister and it basically works great on my
>>>>>>> Gunicorn installation ! But I guess it will have embarrassing 
>>>>>>> consequences?
>>>>>>> Here's the working code of LazyAdminSite
>>>>>>> def register(self, *args, **kwargs):
>>>>>>>     for name, deferred_args, deferred_kwargs in self._deferred:
>>>>>>>         if name == "unregister" and deferred_args[0] == args[0]:
>>>>>>>             self._deferred.append(("register", args, kwargs))
>>>>>>>             break
>>>>>>>     #else:
>>>>>>>     super(LazyAdminSite, self).register(*args, **kwargs)
>>>>>>>
>>>>>>> def unregister(self, *args, **kwargs):
>>>>>>>     self._deferred.append(("unregister", args, kwargs))
>>>>>>>     super(LazyAdminSite, self).unregister(*args, **kwargs)
>>>>>>>
>>>>>>> I can provide additional information / tests if needed.
>>>>>>>
>>>>>>> Thanks!
>>>>>>>
>>>>>>>
>>>>>>> Le mercredi 10 septembre 2014 10:50:32 UTC+2, Jérôme Sivadier a
>>>>>>> écrit :
>>>>>>>
>>>>>>>> Hello,
>>>>>>>>
>>>>>>>> I am currently working on a website based on Django (1.6.7) +
>>>>>>>> Mezzanine (3.1.10) and I am facing problems with the Admin side.
>>>>>>>> In my application I have a custom User model (named BMUser) and I
>>>>>>>> have declared it in *settings.py* like this :
>>>>>>>> AUTH_PROFILE_MODULE = "myApp.BMUser"
>>>>>>>>
>>>>>>>> On the development side, everything works great but when I go on
>>>>>>>> the production side (same code but I use postgres instead of sqlite and
>>>>>>>> gunicorn) Mezzanine's *UserProfileAdmin* doesn't show up... I only
>>>>>>>> get Django's UserAdmin which doesn't add a reference to "myApp.BMUser" 
>>>>>>>> at
>>>>>>>> the bottom of the user management.
>>>>>>>>
>>>>>>>> I have *Mezzanine.accounts* in my INSTALLED_APPS (settings.py) and
>>>>>>>> the configuration between development and production side seem to be 
>>>>>>>> the
>>>>>>>> same.
>>>>>>>>
>>>>>>>> Any ideas? Thanks in advance !
>>>>>>>>
>>>>>>>  --
>>>>>>> You received this message because you are subscribed to the Google
>>>>>>> Groups "Mezzanine Users" group.
>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>> send an email to [email protected].
>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Stephen McDonald
>>>>>> http://jupo.org
>>>>>>
>>>>>  --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "Mezzanine Users" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to [email protected].
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Stephen McDonald
>>>> http://jupo.org
>>>>
>>>  --
>>> You received this message because you are subscribed to the Google
>>> Groups "Mezzanine Users" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>
>>
>> --
>> Stephen McDonald
>> http://jupo.org
>>
>  --
> You received this message because you are subscribed to the Google Groups
> "Mezzanine Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to