
On 7/31/25 17:54, Mark wrote:
Thank you Mark. It's so close. After wrangling your solution a bit it's working a treat on my test server (wrangled solution below) .
When I add it to the production server (same OS, MM installation, etc) I'm getting a "Bad gateway" error page and the log reports ...
... raise self.model.DoesNotExist( django.contrib.sites.models.Site.DoesNotExist: Site matching query does not exist.
That error will occur when settings.py contains
SITE_ID = 0
and the host in the http request is not one of the hosts in the django_site table in the database or in Sites in the Django admin web UI.
Is that possibly the case here? In any case, if the change to /opt/mailman/venv/lib/python3.11/site-packages/django_mailman3/views/user_adapter.py that you report below is the only thing that changed from a working installation, I don't see how that can affect this.
Is there a complete traceback preceding the log snippet you report. If so, what is it?
I cannot for the life of me get my head around that. I suspect it's something to do with what you said -- "whatever is proxying to Django setting the appropriate HTTP_HOST header." -- which I don't understand.
This is in the configuration of the web server. It should be configured
to pass the host of the incoming request to the proxy target in the
HTTP_HOST header. In nginx this is proxy_set_header Host $host;
. In
apache it is ProxyPreserveHost On
, but again the change to
user_adapter shouldn't affect this.
Any additional advice gratefully received.
================================== /opt/mailman/venv/lib/python3.11/site-packages/django_mailman3/views/user_adapter.py
COMMENT OUT THESE 2 LINES...
# def is_open_for_signup(self, req): # return False
REPLACE WITH THE FOLLOWING...
def is_open_for_signup(self, req): if req.META['HTTP_HOST'] == 'lists.mydomain.com':
I had
if req.META.HTTP_HOST == 'lists.mydomain.com':
which as you discovered is wrong. What you have is correct.
return False else: return True
And here I had
return super().is_open_for_signup(self, req)
which should return the is_open_for_signup result from allauth.account.adapter.DefaultAccountAdapter but since that result is an unconditional True, what you have is OK too.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan