Saturday, February 28, 2015

Problem installing and using smart_selects


Smart Selects looked so simple and promising for chained selects (https://github.com/digi604/django-smart-selects).  However, no matter how I install it, it doesn't seem to work.  Here is what I've tried:


Attempt #1 - putting it in django.contrib

Copied the smart_selects folder to /django/contrib/smart_selects

Added "django.contrib.smart_selects" to INSTALLED_APPS in settings.py

But within Django shell I got this error:

>>>  from django.contrib import smart_selects
>>>  smart_selects.urls
AttributeError: 'module' object has no attribute 'urls'



Attempt #2 - installed using pip

I removed the smart_selects folder from /django/contrib  folder (above) and then installed using pip... which put smart_selects in the Python site-packages folder.

But then trying to use smart_selects within urls.py produced an ugly "ImportError: cannot import name simplejson" which suggests smart_selects has some outdated dependencies. (I"m using Django 1.7).



Attemp #3 - putting smart_packages in the root folder of my Django project

When smart_selects is placed here, again I can import smart_selects from the Django shell  but not access smart-selects.urls :

Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> import smart_selects
>>> dir(smart_selects)
['__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__', 'models']
>>> smart_selects.urls
Traceback (most recent call last):
  File "<console>", line 1, in <module>
AttributeError: 'module' object has no attribute 'urls'


Finally it works if i do this:

>>> import smart_selects.urls
>>> smart_selects.urls
<module 'smart_selects.urls' from '/Users/chas/Projects/switch/djangoroot/smart_selects/urls.pyc'>



However, I really don't like putting apps here since they clutter up my own development (and would rather keep 3rd party apps in django/contrib). 

What am I missing about the smart_selects ?
Thank you,

Mike,

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/1034ee57-88fc-417e-a9d6-b5787815ffb9%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Re: "ResourceWarning: unclosed" error using mysql-connector-python

I was also getting these errors, upgrading resolved them for me as well.

On Friday, July 4, 2014 at 6:59:03 AM UTC-7, Zemian Deng wrote:
No problem. Thanks for the reply.


On Fri, Jul 4, 2014 at 12:51 AM, cercatrova2 <cerca...@gmail.com> wrote:
On 04/07/14 05:09, Zemian Deng wrote:
Hum... I am surprised that no one has experienced this warning msg yet, or maybe I can't catch anyone to reply.

For those are curious, I do now see mysql-connector-python 1.2.2 is available, and upgrading to this version got rid off these warnings.

On Thursday, June 12, 2014 11:24:40 PM UTC-4, Zemian Deng wrote:
Anyone?

On Tuesday, June 10, 2014 11:26:18 PM UTC-4, Zemian Deng wrote:
Hi there,

I am using mysql-connector-python (1.1.6) with Django (1.6.5) and myapp is working fine. But each SQL call to DB will result the following warning messages:

Exception ignored in: <socket.socket fd=4, family=AddressFamily.AF_INET, type=SocketType.SOCK_STREAM, proto=6, laddr=('127.0.0.1', 62622), raddr=('127.0.0.1', 3306)>

ResourceWarning: unclosed <socket.socket fd=4, family=AddressFamily.AF_INET, type=SocketType.SOCK_STREAM, proto=6, laddr=('127.0.0.1', 62622), raddr=('127.0.0.1', 3306)>


Has anyone seen this and know a way to resolve it?

Also, FYI, I am using the following in my settings file.
DATABASES = {
    'default': {
       'ENGINE': 'mysql.connector.django',
       'NAME': 'mydb',
       'USER': 'test',
       'PASSWORD': 'test',
    },
}

Thanks,
Zemian
--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users...@googlegroups.com.
To post to this group, send email to django...@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/a443d950-fe72-4380-bf61-1fc9c71c9af9%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Zemian - I saw these warning messages too with 1.1.6 but indeed they went away with 1.2.2 about a month ago so I didn't post anything. Sorry but I didn't know of your message at the time.



--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users...@googlegroups.com.
To post to this group, send email to django...@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/53B632EE.2080203%40gmail.com.

For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/ea575334-f11d-4841-8ac2-1ffb4b278b14%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Re: djangoproject.com https access problems

OK, I will do that,

because even IE 11 doesn't work
(by the way I use FF 36.0 on Win7 64bit).

Anton

James Schneider wrote:

> The proxy is likely forcing a TLS fallback in a way that Firefox doesn't
> like. Ensure you are using the latest version of FF, but even then, unless
> you have control off the proxy, there may not be much you can do except
> open a support ticket with your IT department.
>
> https://bugzilla.mozilla.org/show_bug.cgi?id=1072382
>
> -James
> On Feb 27, 2015 8:58 AM, "anton" <antonxx@gmx.de> wrote:
>
>> Hi,
>>
>> at home it works, but in my company
>> the proxy refuses the connection to:
>>
>> https://www.djangoproject.com
>>
>> and my firefox gives me an error:
>>
>> ssl_error_inappropriate_fallback_alert
>>
>> Question: since when did you switch the website to https
>> (or didn't I notice it)
>>
>> Other sites seems to work, is there anything special
>> with https://www.djangoproject.com ?
>>
>> All the time I had no problems.
>>
>>
>> Anton
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Django users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to django-users+unsubscribe@googlegroups.com.
>> To post to this group, send email to django-users@googlegroups.com.
>> Visit this group at http://groups.google.com/group/django-users.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/django-users/mcq7ng%24s55%241%40ger.gmane.org
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>


--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/mcsnhj%242ob%241%40ger.gmane.org.
For more options, visit https://groups.google.com/d/optout.

[1.8] MultiHost with template dir per Host

Hi,

I had create a middleware, that is able to change the template directory per host on the fly.
But it stopped working since I upgraed to Django 1.8 and I tried to fix it.

My problem is:
If I visit domain1.tld, all works fine. Django loads the templates from the right directory. (/path/domain1.tld/templates/)
But if I visit now domain2.tld, Django tried to load the template from the domain1.tld directory /path/domain1.tld/templates/ and not from /path/domain2.tld/templates/.
The debug messages shows me, that the middleware overrides the template path successfully.

Maybe someone can help me to fix it.

Details:
Django version: 1.8b1
Python: 3.4

If you need some other information, just ask for it.

- settings.py
MIDDLEWARE_CLASSES = (
'core.middleware.MultiHostMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
...
)

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'OPTIONS': {
            'context_processors': [
                'django.contrib.auth.context_processors.auth',
                'django.template.context_processors.debug',
                'django.template.context_processors.i18n',
                'django.template.context_processors.media',
                'django.template.context_processors.static',
                'django.template.context_processors.tz',
                'django.contrib.messages.context_processors.messages',
            ],
            'loaders': [
                'django.template.loaders.filesystem.Loader',
                'django.template.loaders.app_directories.Loader',
            ],
            'debug': True
        },
    },
]

ROOT_URLCONF = 'core.urls'

HOST_MIDDLEWARE_TEMPLATE_DIRS = {
   "domain1.tld": BASE_DIR + "/domain1.tld/templates/",
   "domain2.tld": BASE_DIR + "/domain2.tld/templates/",
}

HOST_MIDDLEWARE_URLCONF_MAP = {
   "domain1.tld": "domain1.urls",
   "domain2.tld": "domain2.urls",
}

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'core',
    'domain1',
    'domain2',
)

- middleware.py
from django.conf import settings
from django.utils.cache import patch_vary_headers


class MultiHostMiddleware:

    def get_settings(self, request):

        host = request.META["HTTP_HOST"]
        host_port = host.split(':')

        if len(host_port) == 2:
            host = host_port[0]

        if host in settings.HOST_MIDDLEWARE_URLCONF_MAP:

            urlconf = settings.HOST_MIDDLEWARE_URLCONF_MAP[host]
            template_dirs = settings.HOST_MIDDLEWARE_TEMPLATE_DIRS[host],

        else:
            urlconf = settings.ROOT_URLCONF
            template_dirs = None

        return urlconf, tuple(template_dirs)

    def process_request(self, request):

        urlconf, template_dirs = self.get_settings(request)

        request.urlconf = urlconf
        settings.TEMPLATES[0]['DIRS'] = template_dirs

    def process_response(self, request, response):

        if getattr(request, "urlconf", None):
            patch_vary_headers(response, ('Host',))

        return response



--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/68d650a9-db37-46b9-8407-9eafd1404158%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Re: Django Wysiwyg and images (Summernote or Froala)

Hi Dave,

I encounter the same problem. Did you find any solution?

I really don't know what is going wrong and the image does not appear.

Sakis

Τη Τετάρτη, 4 Φεβρουαρίου 2015 - 12:04:30 π.μ. UTC+2, ο χρήστης David Mutton έγραψε:
Hi,
I've been trying to integrate a WYSIWYG editor into my Django project. I first started with Summernote and I had no issue integrating the it into admin or a form. I followed the instructions on their github and everything works great except image uploading and inserting. The file is uploading (I can see it in the filesystem) but it does not show up in the editor or in the resulting html.

I thought it was just Summernote and so I switched to Froala but I'm getting the exact same behavior. Is there something I'm missing with image upload inside a wysiwyg?


Dave

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/a0eb7cff-6423-4f86-b4ac-fea9604e6604%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Friday, February 27, 2015

Re: Django OperationalError

Hello James, will do but I am not at mine lap top atm, gona do it as soon as posible, tank you very much.

On Saturday, February 28, 2015, James Schneider <jrschneider83@gmail.com> wrote:
> Generally this happens when you don't apply the initial migration. Have you run 'python manage.py migrate' (assuming Django >= 1.7 since you mentioned making migrations) and if you have, what was the output? If you aren't sure, run it again as it shouldn't hurt anything.
>
> Check your database and make sure that the tables actually exist. If not, and there is no production data (assuming not based on the question), drop and recreate the DB to clear out any previously failed migration attempts and apply your migrations again using the command I specified. Capture the entire output of the command and paste it back to this list so that we can help more.
>
> -James
>
> On Feb 27, 2015 10:02 PM, "Petar Pilipovic" <iamrmot@gmail.com> wrote:
>>
>> Hello, I have manage to merge mine application to pythonanywhere.com. After I have done all the needed installing, uploading files, collecting static, making migrations to mine django application, I have experienced an OperationError saying:
>>
>> no such table: django_session
>> You can find the rest of mine question here on stackoverflow, Can someone help me over come this error, tank you.
>>  
>>
>> --
>> You received this message because you are subscribed to the Google Groups "Django users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
>> To post to this group, send email to django-users@googlegroups.com.
>> Visit this group at http://groups.google.com/group/django-users.
>> To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/01f5c13c-5b7e-40ea-b98b-e37640e477df%40googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>
> --
> You received this message because you are subscribed to a topic in the Google Groups "Django users" group.
> To unsubscribe from this topic, visit https://groups.google.com/d/topic/django-users/MOsaEEDNyQg/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to django-users+unsubscribe@googlegroups.com.
> To post to this group, send email to django-users@googlegroups.com.
> Visit this group at http://groups.google.com/group/django-users.
> To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CA%2Be%2BciXfPuqKgQz89CVgaB07cf_Lwj%3DK-XcdtV9GK1EZ%3DQxMaQ%40mail.gmail.com.
> For more options, visit https://groups.google.com/d/optout.
>

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CAK8niQsiLMaeLE%3D_8phdGhKqsYXuuL3nwStTJwXJQ%3D%2BrVuNYLQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Re: Django OperationalError

Generally this happens when you don't apply the initial migration. Have you run 'python manage.py migrate' (assuming Django >= 1.7 since you mentioned making migrations) and if you have, what was the output? If you aren't sure, run it again as it shouldn't hurt anything.

Check your database and make sure that the tables actually exist. If not, and there is no production data (assuming not based on the question), drop and recreate the DB to clear out any previously failed migration attempts and apply your migrations again using the command I specified. Capture the entire output of the command and paste it back to this list so that we can help more.

-James

On Feb 27, 2015 10:02 PM, "Petar Pilipovic" <iamrmot@gmail.com> wrote:

Hello, I have manage to merge mine application to pythonanywhere.com. After I have done all the needed installing, uploading files, collecting static, making migrations to mine django application, I have experienced an OperationError saying:

no such table: django_session

You can find the rest of mine question here on stackoverflow, Can someone help me over come this error, tank you.
 

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/01f5c13c-5b7e-40ea-b98b-e37640e477df%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CA%2Be%2BciXfPuqKgQz89CVgaB07cf_Lwj%3DK-XcdtV9GK1EZ%3DQxMaQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Django OperationalError

Hello, I have manage to merge mine application to pythonanywhere.com. After I have done all the needed installing, uploading files, collecting static, making migrations to mine django application, I have experienced an OperationError saying:

no such table: django_session

You can find the rest of mine question here on stackoverflow, Can someone help me over come this error, tank you.
 

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/01f5c13c-5b7e-40ea-b98b-e37640e477df%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Re: Migrations force me to have, forever, any name/reference I use in field validators=, choices=, whatever, valid forever (even if the requirements change).

Hello,

another solution may be to patch your models in the migration module or class, like:

import myapp.models

myapp.models.valid_identifier = something_acceptable()

Although it seems a bit ugly, I just tested it, and it works. This way valid_identifier will live during the migration only.

Best,
Gergely

On 27 Feb 2015 21:17, "Luis Masuelli" <luisfmasuelli@gmail.com> wrote:
Thanks :D Did not think about squashing migrations as solution for this problem! But it does the job.
OTOH the fact about historical models has nothing to do with my problem (since it is not related at all with instancing a model, but just about the definition and not getting a NameError).

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/15bb8a96-18a5-432c-afeb-7a3299ca7a4d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CACczBUJz9A%2ByKxTkP-prtfXihoSudM6V0HLD_mXUZTu2yQqjkg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Re: Model field with default value and choices is always reported as changed, even if unchanged

Am 26.02.2015 um 19:06 schrieb Carsten Fuchs:
> The expected output is `False`,[...]

Just for future reference, this is continued here:
https://code.djangoproject.com/ticket/24428

Best regards,
Carsten

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/54F0DEB6.4010008%40cafu.de.
For more options, visit https://groups.google.com/d/optout.

Re: Migrations force me to have, forever, any name/reference I use in field validators=, choices=, whatever, valid forever (even if the requirements change).

Thanks :D Did not think about squashing migrations as solution for this problem! But it does the job.
OTOH the fact about historical models has nothing to do with my problem (since it is not related at all with instancing a model, but just about the definition and not getting a NameError).

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/15bb8a96-18a5-432c-afeb-7a3299ca7a4d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Did you try NamedUrlWizardView ? I tried example code but does not work ;-(


File ... ... site-packages\django\views}generic\base.py line 60
"attributes of the class." % <(cld.__nsmr__,key)
TypeError: ApplyWizard() received an invalid keyword 'url_name'.
as_view only accepts arguments that are already attributes of the class.

If somebody got NamedUrlWizardView working, let me know how....

-Thanks


--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/6abc9c4f-e6b5-4ef5-8fab-e75c326b45aa%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Re: djangoproject.com https access problems

The proxy is likely forcing a TLS fallback in a way that Firefox doesn't like. Ensure you are using the latest version of FF, but even then, unless you have control off the proxy, there may not be much you can do except open a support ticket with your IT department.

https://bugzilla.mozilla.org/show_bug.cgi?id=1072382

-James

On Feb 27, 2015 8:58 AM, "anton" <antonxx@gmx.de> wrote:
Hi,

at home it works, but in my company
the proxy refuses the connection to:

https://www.djangoproject.com

and my firefox gives me an error:

ssl_error_inappropriate_fallback_alert

Question: since when did you switch the website to https
(or didn't I notice it)

Other sites seems to work, is there anything special
with https://www.djangoproject.com ?

All the time I had no problems.


Anton

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/mcq7ng%24s55%241%40ger.gmane.org.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CA%2Be%2BciWvcKryv7A8VSDESatmTzkuVZTwT_AHMnuPE13%2BERF6Og%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Query optimization - From 3 queries to 2

I basically have to display a list of service providers and in each, I need to display the categories of service they offer.

So as an example:

Possible Service Type Categories:

[id: 1, name:'Programming']  [id: 2, name:'Design']

Possible Service Types:

[id: 1, name: 'PHP Service', service_type_category_id: 1]  [id: 2, name: 'JAVA Service', service_type_category_id: 1]  [id: 3, name: 'Web Design Service', service_type_category_id: 2]

Example of Display Results:

Company Blue offers 'Programming'  Company Test offers 'Programming' and 'Design'  Company Orange offers 'Design' ....

I'm trying to write the least number of queries:

I have these models:

class ServiceTypeCategory( BaseModel ):        # Model Attributes      name = models.CharField( _( "name" ), max_length = 40 )      class ServiceType( BaseModel ):        # Model Attributes      service_type_category = models.ForeignKey( 'ServiceTypeCategory', verbose_name = _( 'category' ) )      name = models.CharField( _( "name" ), max_length = 60 )      description = models.TextField( _( "description" ) )      class Provider( BaseModel ):        # Model Attributes      display_name = models.CharField( _( "name" ), max_length = 80 )        # Many to many relations      countries = models.ManyToManyField( 'core.Country' ) # countries this provider support      service_types = models.ManyToManyField( 'ServiceType', through = 'Provider_ServiceTypes', related_name = 'service_types' )      class Provider_ServiceTypes( BaseModel ):        # Model Attributes      service_type = models.ForeignKey( 'ServiceType', verbose_name = _( 'service type' ) )      provider = models.ForeignKey( 'Provider', verbose_name = _( 'provider' ) )      is_top = models.BooleanField( _( "is top service" ), default = False )

Then, to run the query, I have the following:

providers = Provider.objects.select_related(      'user',  ).prefetch_related(      Prefetch(          'service_types__service_type_category',          queryset = ServiceTypeCategory.objects          .only( 'name' )      )  ).filter(      countries = country_id,  ).only(      'id', 'display_name', 'user'  ).order_by(      '-user__last_login'  )

This works out well, but it runs the 3 following queries:

SELECT app_provider.id, app_provider.user_id, app_provider.display_name, core_user.id, core_user.password, core_user.last_login, core_user.is_superuser, core_user.created_date, core_user.modified_date, core_user.email, core_user.name, core_user.is_active, core_user.is_admin   FROM app_provider   INNER JOIN app_provider_countries ON ( app_provider.id = app_provider_countries.provider_id )   INNER JOIN core_user ON ( app_provider.user_id = core_user.id )   LEFT OUTER JOIN core_userpersonal ON ( core_user.id = core_userpersonal.user_id )   LEFT OUTER JOIN core_userstats ON ( core_user.id = core_userstats.user_id )   WHERE app_provider_countries.country_id = 204   ORDER BY core_userstats.total_reviews DESC, core_userstats.total_contracts DESC, core_userstats.total_answers DESC, core_user.last_login DESC LIMIT 5      SELECT (app_provider_servicetypes.provider_id) AS _prefetch_related_val_provider_id, app_servicetype.id, app_servicetype.created_date, app_servicetype.modified_date, app_servicetype.service_type_category_id, app_servicetype.name, app_servicetype.description   FROM app_servicetype   INNER JOIN app_provider_servicetypes ON ( app_servicetype.id = app_provider_servicetypes.service_type_id )   WHERE app_provider_servicetypes.provider_id IN (2)      SELECT app_servicetypecategory.id, app_servicetypecategory.name   FROM app_servicetypecategory   WHERE app_servicetypecategory.id IN (1, 2)

Question is: How can I make to run just 2 queries in total? (The last 2 queries should be joined with INNER JOIN and a group by per service_type_category_name)

Thanks in advance!

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/3daddb38-3260-4f7d-9559-7d0d3f17b59e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

djangoproject.com https access problems

Hi,

at home it works, but in my company
the proxy refuses the connection to:

https://www.djangoproject.com

and my firefox gives me an error:

ssl_error_inappropriate_fallback_alert

Question: since when did you switch the website to https
(or didn't I notice it)

Other sites seems to work, is there anything special
with https://www.djangoproject.com ?

All the time I had no problems.


Anton

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/mcq7ng%24s55%241%40ger.gmane.org.
For more options, visit https://groups.google.com/d/optout.

Re: Research: Translations od documentation

I thought there was a plugin for that? You can also do some research and find some articles on how to implement it.

On Thursday, 26 February 2015 05:11:21 UTC-5, Tomáš Ehrlich wrote:
Hello,
tonight is regular python/ruby meetup in Brno (Czech republic) about documentation. Last few months I've been working on project concerning localization of documents. I would like to know your opinion about localization of documentation:

Do you think it would be useful to translate documentation of:
1) Django
2) Python
3) Any project documented using Sphinx (like numpy, scipy, request, …)

Three simple answers Yes/No would help me a lot. If you write a short paragraph about your opinion, I will very appreciate it.

Thank you


Cheers,
   Tom


--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/be5c9914-9c0c-47f0-b88a-3c143d5d39ae%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Re: Can the new `Prefetch` solve my problem?


On Feb 27, 2015 12:51 AM, "aRkadeFR" <contact@arkade.info> wrote:
>
> Yeah, but from my experience, your example through a new
> query. You have to (and please correct me if I'm wrong or
> there are other ways) use the self.chair_set.all() in order
> to not through a new query when you have prefetched the
> chairs.

AFAIK, self.chair_set.all() would always spawn a second query unless something like select_related() had been used previously to cache that query result

I provided several examples, some of which spawn a second query (and may be appropriate, I can't provide an affirmative answer for the OP without knowing how many queries are being run per page load and average query time, etc.). You'll need to be more specific.

I think I accidentally referred to some of the model fields as if they were FK's, but they probably should have had .all() after all of the references since everything was an M2M relationship.

>
> To be simple and answer the problem: my only solution I
> have in mind is to prefetched all the objects (chairs), and
> then filter it in python with properties like I said. But as you
> said it will load too much objects...

I think there was some miscommunication here. The OP stated that loading all of the chairs was infeasible, and I would tend to agree.

My only clarification would be that loading all of the chairs via something like Chair.objects.all() would be a bad idea, since you have no idea how many chairs you may have in the entire database.

Loading >10k Chair objects into memory and having Django coerce those into model objects, and then performing post processing in some custom app code to filter that list back down to something reasonable will give you a bad time, every time. Your users will be unhappy with pages that take seconds to load, and your server processes will be unhappy assuming you have plenty of RAM/CPU to handle such a request. Now multiply that load by X number of users...and you're quickly hitting CPU and process limits for RAM allocation.

However, "loading all of the chairs" via a M2M or FK relationship such as desk_obj.nearby_chairs.all() (assuming the OP reconfigured the model fields as I suggested before, or even using the existing Chair M2M to Desk) would likely be perfectly valid and would probably be a small subset of the total chairs in the system (or maybe None or all of them).

>
> Still watching the thread cause I have couple of problems
> like this one :)
>

I don't necessarily run in to this specific problem, so I'm not sure how much more I can contribute. A lot of the model changes I suggested were educated guesses and may not be valid at all given other requirements or design considerations in the project.

> aRkadeFR
>
>
> On 02/26/2015 08:27 PM, James Schneider wrote:
>>
>> Heh, I just realized that aRkadeFR had replied with a similar idea to use a property. At least I know I'm not too far off on my thinking. :-D
>>
>> -James
>>
>> On Thu, Feb 26, 2015 at 11:02 AM, James Schneider <jrschneider83@gmail.com> wrote:
>>>
>>> Whoops, accidentally sent that last one too early, here's the continuation:
>>>
>>> However, that probably doesn't buy you much since you are still doing an extra query for every Desk you pull from your original query.
>>>
>>> Funny enough, I was googling around for an answer here, and stumbled across this:
>>>
>>> https://docs.djangoproject.com/en/1.7/ref/models/queries/#django.db.models.Prefetch
>>>
>>> which I think is what you were referring to initially in your OP. I wasn't even aware of its existence. Prefetch() is a helper class for prefetch_related(). Taking a quick glance through the source code, I would imagine that it probably won't help you much, since the functionality of that class only controls the action of prefetch_related().
>>>
>>>
>>> Zooming out a bit, the crux of your problem is this: An attribute you wish to populate is not an FK or M2M field, it is an entirely separate Queryset with some moderately complex filters. The built-in ORM functionality for pre-loading via prefetch/select_related() is expecting a FK or M2M relationship and can't  use another queryset AFAIK. The high-level functionality of prefetch_related() is probably close to what you want, which is to run a single second query to collect all of the favorite_or_nearby_chairs for all of the Desks in your original query, and then glue everything together behind the scenes in Python to make the desk_obj.favorite_or_nearby_chairs available seamlessly.
>>>
>>> I would then wonder if there is another way to organize this data to make it easier to work with? How about adding a 'favorite_chairs' field to the Desk model that has an M2M to Chair? I would also update your 'nearby_desks' model field to use 'nearby_chairs' as the related_field. 
>>>
>>> Then you could do something like the following:
>>>
>>> desks = Desk.objects.filter(<filter here>).select_related('nearby_chairs', 'favorite_chairs')
>>>
>>> Then, you can modify your model with a property that will return the concatenation of nearby_chairs and favorite_chairs:
>>>
>>> class Desk(models.Model):
>>>     @property
>>>     def favorite_or_nearby_chairs(self):
>>>         return self.nearby_chairs.all() + self.favorite_chairs
>>>
>>> I don't believe this will spawn another query, since select_related() will have already run and have the results cached. You may also want to consider moving 'nearby_desks' out of Chair and renaming it to 'nearby_chairs' in Desk, and using a related_name of 'nearby_desks' instead. Then you can remove the .all() from the property definition from above and it definitely won't spawn a query. Obviously you'll need to create other processes that will populate desk.favorite_chairs, which may or may not be feasible.
>>>
>>> TL;DR; I don't believe you can pre-fetch anything because of the extra SQL logic needed to calculate the favorite_or_nearby_chairs attribute. It might be possible via raw SQL though. Reformatting your data models may lead to an easier time since you can then take advantage of the some of the optimizations Django offers.
>>>
>>> I'm slightly out in right field on this one, so YMMV, but taking a hard look at the current model design would be where I would start to try and eliminate the need for that custom queryset.
>>>
>>> Again, the django-debug-toolbar is your friend in these cases, but obviously a high number of even relatively fast queries can have a detrimental effect on your load times. Also ensure that the fields you are using to filter contain indexes, if appropriate/available.
>>>
>>> -James
>>>
>>>
>>>
>>>
>>> On Thu, Feb 26, 2015 at 10:17 AM, James Schneider <jrschneider83@gmail.com> wrote:
>>>>
>>>> Yep, looks like I misunderstood.
>>>>
>>>> So, you want to have something like this pseudo code:
>>>>
>>>> desks = Desk.objects.filter(<some filter>)
>>>> for desk in desks:
>>>>     print desk.favorite_or_nearby_chairs
>>>>
>>>> And have favorite_or_nearby_chairs be pre-populated with your Chair queryset mentioned earlier?
>>>>
>>>> Due to the nature of the custom Chair queryset, I doubt you can do any sort of pre-fetching that would reduce the number of queries. You can probably simulate the effect of prefetch_related() though by overriding the __init__() method of your Desk model, and having the Desk model populate favorite_or_nearby_chairs whenever a Desk object is created. 
>>>>
>>>> class Desk(models.Model)
>>>>     def __init__(self):
>>>>         # using list() to force the queryset to be evaluated
>>>>         self.favorite_or_nearby_chairs = list(<custom Chair queryset>)
>>>>
>>>>
>>>> However, that probably doesn't buy you much since you are still doing an extra query for every Desk you pull from your original query.
>>>>
>>>> Funny enough, I was googling around for an answer here, and stumbled across this:
>>>>
>>>>
>>>>
>>>>
>>>> On Thu, Feb 26, 2015 at 4:19 AM, aRkadeFR <contact@arkade.info> wrote:
>>>>>
>>>>> got it, so you want to prefetch but not all chairs.
>>>>>
>>>>> I will def follow this thread to see the possibilities of Prefetch :)
>>>>>
>>>>>
>>>>> On 02/26/2015 12:52 PM, Ram Rachum wrote:
>>>>>>
>>>>>> There may be a big number of chairs, and I don't want all the chairs prefetched. I want to have the database filter them according to the queryset I specified in a single call, I don't want to filter them in Python or make a new call to filter them.
>>>>>>
>>>>>> Thanks,
>>>>>> Ram.
>>>>>>
>>>>>> On Thu, Feb 26, 2015 at 1:48 PM, aRkadeFR <contact@arkade.info> wrote:
>>>>>>>
>>>>>>> I may not have completely understand your problem, but
>>>>>>> why not prefetching all the chairs? and then with the (new)
>>>>>>> attribute favorite_or_nearby_chairs loading only the favorite
>>>>>>> or nearby one?
>>>>>>>
>>>>>>> like:
>>>>>>> @property
>>>>>>> def favorite_or_nearby_chairs(self):
>>>>>>>     for chair in self.chair_set.all():
>>>>>>>           #filter...
>>>>>>>           ans += ...
>>>>>>>     return ans
>>>>>>>
>>>>>>> It will only hit the DB once thanks to the first join of desk
>>>>>>> <-> chair.
>>>>>>>
>>>>>>>
>>>>>>> On 02/26/2015 11:28 AM, cool-RR wrote:
>>>>>>>>
>>>>>>>> James, you misunderstood me.
>>>>>>>>
>>>>>>>> There isn't supposed to be a `favorite_or_nearby_chairs` attribute. That's the new attribute I want the prefetching to add to the `Desk` queryset that I need. Also, I don't understand why you'd tell me to add a `.select_related('nearby_desks')` to my query. Are you talking about the query that starts with `Chair.objects`? I'm not looking to get a `Chair` queryset. I'm looking to get a `Desk` queryset, which has a prefetched attribute `favorite_or_nearby_chairs` which contains the `Chair` queryset I wrote down.
>>>>>>>>
>>>>>>>>
>>>>>>>> Thanks,
>>>>>>>> Ram.
>>>>>>>>
>>>>>>>> On Thursday, February 26, 2015 at 6:02:15 AM UTC+2, James Schneider wrote:
>>>>>>>>>
>>>>>>>>> Well, the Desk model you provided is blank, but I'll believe you that there's a favorite_or_nearby_chairs attribute. ;-)
>>>>>>>>>
>>>>>>>>> Should be relatively simple. Just add a .select_related('nearby_desks') to your existing query and that should pull in the associated Desk object in a single query. You can also substitute in prefetch_related(), although you'll still have two queries at that point.
>>>>>>>>>
>>>>>>>>> If you are trying to profile your site, I would recommend the Django-debug-toolbar. That should tell you whether or not that query set is the culprit.
>>>>>>>>>
>>>>>>>>> -James
>>>>>>>>>
>>>>>>>>> On Feb 25, 2015 1:28 PM, "Ram Rachum" <r...@rachum.com> wrote:
>>>>>>>>>>
>>>>>>>>>> Hi James,
>>>>>>>>>>
>>>>>>>>>> I've read the docs but I still couldn't figure it out. My queryset works great in production, I'm trying to optimize it because our pageloads are too slow. I know how to use querysets in Django pretty well, I just don't know how to use `Prefetch`. 
>>>>>>>>>>
>>>>>>>>>> Can you give me the solution for the simplified example I gave? This might help me figure out what I'm not understanding. One thing that might be unclear with the example I gave, is that I meant I want to get a queryset for `Desk` where every desk has an attribute names `favorite_or_nearby_chairs` which contains the queryset of chairs that I desrcibed, prefetched.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Thanks,
>>>>>>>>>> Ram.
>>>>>>>>>>
>>>>>>>>>> On Wed, Feb 25, 2015 at 11:18 PM, James Schneider <jrschn...@gmail.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>> I assume that you are talking about the select_related() and prefetch_related() queryset methods?
>>>>>>>>>>>
>>>>>>>>>>> https://docs.djangoproject.com/en/1.7/ref/models/querysets/#select-related
>>>>>>>>>>> https://docs.djangoproject.com/en/1.7/ref/models/querysets/#prefetch-related
>>>>>>>>>>>
>>>>>>>>>>> Both of those sections have excellent examples, and detail what the differences are (primarily joins vs. separate queries, respectively).
>>>>>>>>>>>
>>>>>>>>>>> For better help, you'll need to go into more detail about the queries you are trying to make, what you've tried (with code examples if possible), and the results/errors you are seeing.
>>>>>>>>>>>
>>>>>>>>>>> In general, I would try to get an initial queryset working and gathering the correct results first before looking at optimizations such as select_related(). Any sort of pre-fetching will only confuse the situation if the base queryset is incorrect.
>>>>>>>>>>>
>>>>>>>>>>> -James
>>>>>>>>>>>
>>>>>>>>>>> On Wed, Feb 25, 2015 at 12:05 PM, cool-RR <ram.r...@gmail.com> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>> Hi guys,
>>>>>>>>>>>>
>>>>>>>>>>>> I'm trying to solve a problem using the new `Prefetch` but I can't figure out how to use it. 
>>>>>>>>>>>>
>>>>>>>>>>>> I have these models:
>>>>>>>>>>>>
>>>>>>>>>>>>     class Desk(django.db.models.Model):
>>>>>>>>>>>>         pass
>>>>>>>>>>>>     
>>>>>>>>>>>>     class Chair(django.db.models.Model):
>>>>>>>>>>>>         desk = django.db.models.Foreignkey('Desk', related_name='chair',)
>>>>>>>>>>>>         nearby_desks = django.db.models.ManyToManyField(
>>>>>>>>>>>>             'Desk',
>>>>>>>>>>>>             blank=True,
>>>>>>>>>>>>         )
>>>>>>>>>>>>
>>>>>>>>>>>> I want to get a queryset for `Desk`, but it should also include a prefetched attribute `favorite_or_nearby_chairs`, whose value should be equal to: 
>>>>>>>>>>>>
>>>>>>>>>>>>     Chair.objects.filter(
>>>>>>>>>>>>         (django.db.models.Q(nearby_desks=desk) | django.db.models.Q(desk=desk)),
>>>>>>>>>>>>         some_other_lookup=whatever,
>>>>>>>>>>>>     )
>>>>>>>>>>>>
>>>>>>>>>>>> Is this possible with `Prefetch`? I couldn't figure out how to use the arguments.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks,
>>>>>>>>>>>> Ram.
>>>>>>>>>>>> --
>>>>>>>>>>>> You received this message because you are subscribed to the Google Groups "Django users" group.
>>>>>>>>>>>> To unsubscribe from this group and stop receiving emails from it, send an email to django-users...@googlegroups.com.
>>>>>>>>>>>> To post to this group, send email to django...@googlegroups.com.
>>>>>>>>>>>> Visit this group at http://groups.google.com/group/django-users.
>>>>>>>>>>>> To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/46d9fdb7-c008-4496-acda-ac7cb30b4a89%40googlegroups.com.
>>>>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> You received this message because you are subscribed to a topic in the Google Groups "Django users" group.
>>>>>>>>>>> To unsubscribe from this topic, visit https://groups.google.com/d/topic/django-users/EuPduHjSNos/unsubscribe.
>>>>>>>>>>> To unsubscribe from this group and all its topics, send an email to django-users...@googlegroups.com.
>>>>>>>>>>> To post to this group, send email to django...@googlegroups.com.
>>>>>>>>>>> Visit this group at http://groups.google.com/group/django-users.
>>>>>>>>>>> To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CA%2Be%2BciVk7_6VBDoBE-qjLBwrBxiNeVdP6-fwwnOXV%3DvSA3HnCw%40mail.gmail.com.
>>>>>>>>>>>
>>>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>> --
>>>>>>>> You received this message because you are subscribed to the Google Groups "Django users" group.
>>>>>>>> To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
>>>>>>>> To post to this group, send email to django-users@googlegroups.com.
>>>>>>>> Visit this group at http://groups.google.com/group/django-users.
>>>>>>>> To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/fc6b1237-7bd0-44a7-a91e-c12301fe0e05%40googlegroups.com.
>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> You received this message because you are subscribed to a topic in the Google Groups "Django users" group.
>>>>>>> To unsubscribe from this topic, visit https://groups.google.com/d/topic/django-users/EuPduHjSNos/unsubscribe.
>>>>>>> To unsubscribe from this group and all its topics, send an email to django-users+unsubscribe@googlegroups.com.
>>>>>>> To post to this group, send email to django-users@googlegroups.com.
>>>>>>> Visit this group at http://groups.google.com/group/django-users.
>>>>>>> To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/54EF0808.9090009%40arkade.info.
>>>>>>>
>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>
>>>>>>
>>>>>> --
>>>>>> You received this message because you are subscribed to the Google Groups "Django users" group.
>>>>>> To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
>>>>>> To post to this group, send email to django-users@googlegroups.com.
>>>>>> Visit this group at http://groups.google.com/group/django-users.
>>>>>> To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CANXboVa6%2BtSa5gmEww2-gm3SGHvGgn2VjOBTbYQA%3DWTt6CaufA%40mail.gmail.com.
>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>>
>>>>> --
>>>>> You received this message because you are subscribed to the Google Groups "Django users" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
>>>>> To post to this group, send email to django-users@googlegroups.com.
>>>>> Visit this group at http://groups.google.com/group/django-users.
>>>>> To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/54EF0F3A.8000703%40arkade.info.
>>>>>
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>>
>>>
>>
>> --
>> You received this message because you are subscribed to the Google Groups "Django users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
>> To post to this group, send email to django-users@googlegroups.com.
>> Visit this group at http://groups.google.com/group/django-users.
>> To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CA%2Be%2BciU2Tnn6oX42%2Bn6Wpg8GRErcaoG9jp_2XCvYmUxDZaKRdw%40mail.gmail.com.
>>
>> For more options, visit https://groups.google.com/d/optout.
>
>
> --
> You received this message because you are subscribed to the Google Groups "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
> To post to this group, send email to django-users@googlegroups.com.
> Visit this group at http://groups.google.com/group/django-users.
> To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/54F0300A.9000204%40arkade.info.
>
> For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CA%2Be%2BciXTbriy4HoEcf1Xt%3DZZAV99_HWuuhfzj%3D-PvJZ0Z7XBPw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.