Re: Disable Auth on Django Application.
Hi, Is there any other way out using the default django AUTH itself. When you say, custom authentication backend, you mean the models are completely different and do not use the django Auth mechanism or it just updates the customer DB? --- Arun. On Tuesday, November 14, 2017 at 11:27:26 AM UTC+5:30, Arun S wrote: > > Hi, > > > > I have two different Django Applications. > > Both the applications have there respective Auth. > > > Applications are hosted on different servers. > > Now the use case is such that: > > > There is a redirection link that can be provided from Application 1. > > Now i would want to disable auth on Application 2 when the link has been > traversed from application 1 which already has a Single Sign on. > > > To be noted, Each application can be access individually so i cannot > disable auth on application2. > > > How can this be achieved where Application 1 has a single sign on and when > a link from application 1 is clicked, > > it gets redirected to application 2 but should not authentication that > particular request as the request is from Application 1. > > > > Thank you. > > Arun. > -- 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+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/7f7161ed-34de-4b4a-b1af-f89387520fd1%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Disable Auth on Django Application.
Hi, I have two different Django Applications. Both the applications have there respective Auth. Applications are hosted on different servers. Now the use case is such that: There is a redirection link that can be provided from Application 1. Now i would want to disable auth on Application 2 when the link has been traversed from application 1 which already has a Single Sign on. To be noted, Each application can be access individually so i cannot disable auth on application2. How can this be achieved where Application 1 has a single sign on and when a link from application 1 is clicked, it gets redirected to application 2 but should not authentication that particular request as the request is from Application 1. Thank you. Arun. -- 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+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/f545da68-40ce-4c1d-b76c-68e5a3890255%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Drop Down Menu in Django Forms not working.
class EvalState(models.Model,AtlasBaseHelper): """ Represents Eval State: ACTIVE INACTIVE DELETE NA """ name = models.CharField(max_length=32, unique=True) friendly_name = models.CharField(max_length=32, unique=True) description = models.CharField(max_length=255, blank=True, null=True) class Meta: verbose_name = "Eval States" def __unicode__(self): return self.name class Bundle(AtlasAuditModel, AtlasBaseHelper):^M """^M Represents the bundle purchased by the customer. The bundle^M contains a reference identifier which remains the same if the^M the bundle is either upgraded or entended.^M A bundle can have 0 or more features.^M """^M bundle_id = models.CharField(verbose_name="Bundle ID",^M max_length=32,^M unique=True)^M customer = models.ForeignKey(Customer)^M description = models.CharField(max_length=255, blank=True, null=True)^M state = models.ForeignKey(BundleState)^M extended_state = models.ForeignKey(BundleExtendedState)^M type = models.ForeignKey(BundleType)^M quantity = models.FloatField(blank=False)^M start_date = models.DateField(verbose_name="Start Date")^M end_date = models.DateField(verbose_name="End Date")^M stage = models.CharField(max_length=32, blank=True, null=True)^M *stage_state = models.ForeignKey(EvalState, verbose_name="Eval State", null=True)* The Below is the Migration Script written to add the States in to EvalState: def forwards(apps, schema_editor): DcPropertyType = apps.get_model("atlas", "evalstate") db_alias = schema_editor.connection.alias DcPropertyType.objects.using(db_alias).bulk_create([ DcPropertyType(name="ACTIVE", friendly_name="EVAL Active", description="Bundle EVAL State is ACTIVE"), DcPropertyType(name="INACTIVE", friendly_name="EVAL InActive",description="Bundle EVAL state is INACTIVE"), DcPropertyType(name="DELETE", friendly_name="EVAL Delete", description="Bundle EVAL state is DELETE"), DcPropertyType(name="NA", friendly_name="EVAL NotApplicable", description="Bundle EVAL state is not applicable") ]) def backwards(apps, schema_editor): DcPropertyType = apps.get_model("atlas", "evalstate") db_alias = schema_editor.connection.alias DcPropertyType.objects.using(db_alias).filter(name="ACTIVE", description="Bundle EVAL State is ACTIVE").delete() DcPropertyType.objects.using(db_alias).filter(name="INACTIVE", description="Bundle EVAL state is INACTIVE").delete() DcPropertyType.objects.using(db_alias).filter(name="DELETE", description="Bundle EVAL state is DELETE").delete() DcPropertyType.objects.using(db_alias).filter(name="NA", description="Bundle EVAL state is not applicable").delete() class Migration(migrations.Migration): dependencies = [ ('atlas', '0012_add_eval_states'), ] operations = [ migrations.RunPython(forwards, backwards), ] Does this make sense for the model structure. I do not have any Models Diagram for the same. --- Arun On Monday, August 7, 2017 at 4:13:33 PM UTC+5:30, lemme smash wrote: > > you didn't show me a model structure, you just showed another model, so I > can't give you example without picture of what's going on there > > On Monday, August 7, 2017 at 1:39:49 PM UTC+3, Arun S wrote: >> >> Can you just give an Example for this taking a Query. >> >> >> >> On Monday, August 7, 2017 at 3:37:04 PM UTC+5:30, lemme smash wrote: >>> >>> i meant EvalState model >>> if name attribute on it is a ForeignKey you should get corresponding >>> queryset of model it links to >>> if it's charfield, you should use text choices >>> >>> On Monday, August 7, 2017 at 6:22:50 AM UTC+3, Arun S wrote: >>>> >>>> The Models Look like this : >>>> >>>> stage_state = models.ForeignKey(EvalState, verbose_name="Eval State") >>>> class Bundle(AtlasAuditModel, AtlasBaseHelper):^M >>>> """^M >>>> Represents the bundle purchased by the customer. The bundle^M >>>> contains a reference identifier which remains the same if the^M >>>> the bundle is either upgraded or entended.^M >>>> A bundle can have 0 or more features.^M >>>> """^M >>>> bundle_id
Re: Drop Down Menu in Django Forms not working.
Can you just give an Example for this taking a Query. On Monday, August 7, 2017 at 3:37:04 PM UTC+5:30, lemme smash wrote: > > i meant EvalState model > if name attribute on it is a ForeignKey you should get corresponding > queryset of model it links to > if it's charfield, you should use text choices > > On Monday, August 7, 2017 at 6:22:50 AM UTC+3, Arun S wrote: >> >> The Models Look like this : >> >> stage_state = models.ForeignKey(EvalState, verbose_name="Eval State") >> class Bundle(AtlasAuditModel, AtlasBaseHelper):^M >> """^M >> Represents the bundle purchased by the customer. The bundle^M >> contains a reference identifier which remains the same if the^M >> the bundle is either upgraded or entended.^M >> A bundle can have 0 or more features.^M >> """^M >> bundle_id = models.CharField(verbose_name="Bundle ID",^M >> max_length=32,^M >> unique=True)^M >> >> >> >> stage_state = models.ForeignKey(*EvalState*, verbose_name="Eval >> State") >> >> >> atlas_bundle; >> atlas_bundle | CREATE TABLE `atlas_bundle` ( >> `id` int(11) NOT NULL AUTO_INCREMENT, >> ... >> >> ... >> *`stage_state_id` int(11) NOT NULL,* >> PRIMARY KEY (`id`), >> *KEY `atlas_bundle_36c1765e` (`stage_state_id`)* >> ) ENGINE=InnoDB AUTO_INCREMENT=1408 DEFAULT CHARSET=latin1 >> ROW_FORMAT=DYNAMIC | >> 19 rows in set (0.01 sec) >> >> desc *evalstate*; >> +---+--+--+-+-++ >> | Field | Type | Null | Key | Default | Extra | >> +---+--+--+-+-++ >> | id| int(11) | NO | PRI | NULL| auto_increment | >> | name | varchar(32) | NO | UNI | NULL|| >> | friendly_name | varchar(32) | NO | UNI | NULL|| >> | description | varchar(255) | YES | | NULL|| >> +---+--+--+-+-++ >> 4 rows in set (0.00 sec) >> >> Whats the Difference in having qs when there is a foriegn Key value? >> >> Arun >> >> On Sunday, August 6, 2017 at 7:48:11 PM UTC+5:30, lemme smash wrote: >>> >>> so, you can maybe show you models structure here? >>> also, if it is a ForeignKey, why you trying to filter qs by string >>> values? I mean Q(name = 'ACTIVE') >>> it's shouldn't work >>> >>> >>> On Sunday, August 6, 2017 at 5:22:21 AM UTC+3, Arun S wrote: >>>> >>>> Yes, name is a foreign key here. >>> >>> -- 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+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/f2c6ca98-9393-4e80-a303-ede320feddd9%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Drop Down Menu in Django Forms not working.
The Models Look like this : stage_state = models.ForeignKey(EvalState, verbose_name="Eval State") class Bundle(AtlasAuditModel, AtlasBaseHelper):^M """^M Represents the bundle purchased by the customer. The bundle^M contains a reference identifier which remains the same if the^M the bundle is either upgraded or entended.^M A bundle can have 0 or more features.^M """^M bundle_id = models.CharField(verbose_name="Bundle ID",^M max_length=32,^M unique=True)^M stage_state = models.ForeignKey(*EvalState*, verbose_name="Eval State") atlas_bundle; atlas_bundle | CREATE TABLE `atlas_bundle` ( `id` int(11) NOT NULL AUTO_INCREMENT, ... ... *`stage_state_id` int(11) NOT NULL,* PRIMARY KEY (`id`), *KEY `atlas_bundle_36c1765e` (`stage_state_id`)* ) ENGINE=InnoDB AUTO_INCREMENT=1408 DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC | 19 rows in set (0.01 sec) desc *evalstate*; +---+--+--+-+-++ | Field | Type | Null | Key | Default | Extra | +---+--+--+-+-++ | id| int(11) | NO | PRI | NULL| auto_increment | | name | varchar(32) | NO | UNI | NULL|| | friendly_name | varchar(32) | NO | UNI | NULL|| | description | varchar(255) | YES | | NULL|| +---+--+--+-+-++ 4 rows in set (0.00 sec) Whats the Difference in having qs when there is a foriegn Key value? Arun On Sunday, August 6, 2017 at 7:48:11 PM UTC+5:30, lemme smash wrote: > > so, you can maybe show you models structure here? > also, if it is a ForeignKey, why you trying to filter qs by string values? > I mean Q(name = 'ACTIVE') > it's shouldn't work > > > On Sunday, August 6, 2017 at 5:22:21 AM UTC+3, Arun S wrote: >> >> Yes, name is a foreign key here. > > -- 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+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/6a5277c8-a8f0-450f-b214-8cc251cab305%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Drop Down Menu in Django Forms not working.
Yes, name is a foreign key here. -- 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+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/4015cb08-4413-4a6d-90b6-219bc1b71d2a%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Drop Down Menu in Django Forms not working.
Hi, I am trying to have a drop down menu for a field in my form but seems like its not working as required. This is my form: forms.py eval_states = [ ('ACTIVE',EvalState.objects.filter(name='ACTIVE')), ('INACTIVE',EvalState.objects.filter(name='INACTIVE')), ('DELETE',EvalState.objects.filter(name='DELETE')), ] class EvalForm(forms.ModelForm): def __init__(self, *args, **kwargs): super(EvalForm, self).__init__(*args, **kwargs) self.fields['name'].queryset = EvalState.objects.filter( Q(name = 'ACTIVE') | Q(name = 'INACTIVE') | Q(name = 'DELETE')) class Meta: model = EvalState fields = ('name',) my html : abc.html {% csrf_token %} Eval State: {{ eval_form.name }} view.py eval_form = None eval_form = atlas_forms.EvalForm(request.POST, EvalState) if eval_form.is_valid(): print eval_form.errors eval_form.save() else: print eval_form.errors What am i missing? Basically requirement is that, i would need a drop down in the HTML and whenever the Value is set and saved, I want it to be updated in the DB. But i am not able to get through the first step of getting the options in the HTML. Any Help on this would be great. Thanks cheers Arun. -- 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+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/9b7492df-5f0f-44fd-b0ec-030e6619c7d8%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Redirection to SSO using Django
Using the django_allauth package, i could see it supports most of the social accounts that can use used for redirection. But what if i want to add a custom link within a corporate account.??? On Wednesday, March 8, 2017 at 9:10:33 PM UTC+5:30, Melvyn Sopacua wrote: > > On Wednesday 08 March 2017 05:26:02 Arun S wrote: > > > > > My Project, i would want to redirect login page to a SSO page. > > > and handle redirection in Django. > > > > Don't solve what others already did for you: > > https://djangopackages.org/packages/p/django-allauth/ > > -- > > Melvyn Sopacua > -- 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+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/1420b92f-a799-48f1-9661-2ec0b46b6ff4%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Redirection to SSO using Django
The Login_redirect comes into picture when SSO redirects the Login back with a response. But i am still unable to redirect my Login page to the Third party page using django_settings. I tried setting LOGIN_URL but, always gets redirected to the django login page. Basically, using Djanog, i want to open third party Login page and then get redirected back to handle the response. Cheers Arun On Wednesday, March 8, 2017 at 8:44:54 PM UTC+5:30, Jani Tiainen wrote: > > Hi, > > You probably need to set LOGIN_REDIRECT_URL [1] to point correct url. What > happens next depends your SSO tools and how they handle passing logged in > user information to your app. > > > [1] > https://docs.djangoproject.com/en/1.10/ref/settings/#login-redirect-url > > On 08.03.2017 15:26, Arun S wrote: > > Hi, > > My Project, i would want to redirect login page to a SSO page. > and handle redirection in Django. > > I am using Apache Server. > > Whats the best way to implement this ? > > i was reading about django - remoteusermiddleware but could'nt quite > figure out how to handle the redirection. > > Any help is appreciated. > > Cheers > Arun. > -- > 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 https://groups.google.com/group/django-users. > To view this discussion on the web visit > <https://groups.google.com/d/msgid/django-users/be86285c-7e27-4792-9df2-f9703d557921%40googlegroups.com?utm_medium=email&utm_source=footer> > https://groups.google.com/d/msgid/django-users/be86285c-7e27-4792-9df2-f9703d557921%40googlegroups.com > . > For more options, visit https://groups.google.com/d/optout. > > > -- > Jani Tiainen > > -- 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+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/1268e5d1-e169-4a34-87ce-fc9914476278%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Redirection to SSO using Django
Hi, My Project, i would want to redirect login page to a SSO page. and handle redirection in Django. I am using Apache Server. Whats the best way to implement this ? i was reading about django - remoteusermiddleware but could'nt quite figure out how to handle the redirection. Any help is appreciated. Cheers Arun. -- 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+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/be86285c-7e27-4792-9df2-f9703d557921%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Issue with Django-axes
Hi, i am using django-axes package and want to lock out a user based on userid. Now there is an issue that the user gets locked out from one IP, but the same user can still login from a different IP successfully. Which negates the whole use of a security requirement of locking a particular user for a period of time. I read at mulitple places that there is an issue with the axes package itself. Is there any middleware that can be used with Django which can handle this situation. Cheers Arun. -- 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+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/0913a3c8-7dd4-42cf-8524-c638ac26af38%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Writing a custome Django Log Formatter.
Hi, Thanks, I did this. But this applies to all the Modules in the Project. Basically my issue is when Django is running with Celery and there are more no of workers, the Logs needs to be diffrentiatied and also not for all the Modules of the project. So in order to apply for a particular module and handle it in the Code, Can the Filter be applied individally and part of the Code when the Logger is being setup for a module.??? Thanks & Cheers Arun On Monday, January 23, 2017 at 3:29:25 PM UTC+5:30, Александр Христюхин wrote: > > Hi, yes, it's absolutely possible. Refer to Django docs about logging ( > https://docs.djangoproject.com/en/1.10/topics/logging/) and logging docs ( > https://docs.python.org/3/library/logging.config.html#logging-config-dictschema > ). > > What you're looking for is logging formatters and filters. Here's an > example: > > > LOGGING = { > 'formatters': { > 'detailed': { > 'format': '%(asctime)s %(module)s %(levelname)-8s- %(some_id)s > %(message)s', > ... > }, > }, > 'handlers': { > 'default': { > 'formatter': 'detailed', > 'filters': ['some_id_filter'], > ... > }, > ... > }, > 'filters': { > 'some_id_filter': { > '()': 'package.module.SomeIdFilter', > }, > }, > ... > } > > > On 23 Jan 2017, at 12:51, Arun S > wrote: > > Hi all, > > I have a small issue with writing a Custom Log Formatter. > > By default: log_format = '%(asctime)s %(module)s %(levelname)-8s- > %(message)s' > > This is the Log formatter being used. > But only in a few cases or rather in a few modules, i would like to > include for ex: "some_id" as a seperator in the Logs. > Intended : l*og_format = '%(asctime)s %(module)s %(levelname)-8s- > %(some_id)s %(message)s'* > > But this always raises a Key Error and i would not want to change each and > every existing log and manually add the new log. > > *Is there a way to write this Custom Log format.???* > > I did try this: > l > > *og_format = '%(asctime)s %(module)s %(levelname)-8s- %(some_id)s > %(message)s' %{'some_id': id}This gives a Key Error " * > > *asctime "*And During Logging setup, i setup the Logging : > > formatter = logging.Formatter(data.get('logging.log_format', None)) > > > > > *file_handler.setFormatter(formatter)* > > -- > 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 https://groups.google.com/group/django-users. > To view this discussion on the web visit > https://groups.google.com/d/msgid/django-users/3275bad0-405b-4bbf-afe7-d0eeb1feb77f%40googlegroups.com > > <https://groups.google.com/d/msgid/django-users/3275bad0-405b-4bbf-afe7-d0eeb1feb77f%40googlegroups.com?utm_medium=email&utm_source=footer> > . > 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+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/7e5ce87f-5749-48da-96cb-e410dc669cd9%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Writing a custome Django Log Formatter.
Hi all, I have a small issue with writing a Custom Log Formatter. By default: log_format = '%(asctime)s %(module)s %(levelname)-8s- %(message)s' This is the Log formatter being used. But only in a few cases or rather in a few modules, i would like to include for ex: "some_id" as a seperator in the Logs. Intended : l*og_format = '%(asctime)s %(module)s %(levelname)-8s- %(some_id)s %(message)s'* But this always raises a Key Error and i would not want to change each and every existing log and manually add the new log. *Is there a way to write this Custom Log format.???* I did try this: l *og_format = '%(asctime)s %(module)s %(levelname)-8s- %(some_id)s %(message)s' %{'some_id': id}This gives a Key Error " * *asctime "*And During Logging setup, i setup the Logging : formatter = logging.Formatter(data.get('logging.log_format', None)) *file_handler.setFormatter(formatter)* -- 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+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/3275bad0-405b-4bbf-afe7-d0eeb1feb77f%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Regular Expression with Variables.
Yes, This works exactly how i intended to. The Validator Raises error when it does'nt match now. And i did eliminate the .*$ which dint make much of a difference. Thanks for the help. Cheers Arun. On Thursday, May 19, 2016 at 12:35:42 PM UTC+5:30, Stephen Butler wrote: > > You can't provide multiple regex's to the RegexField. What you were doing > before is exactly equivalent to this: > > r'^.*(?=.{8,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!$%^&*?@#-_+=]).*$' > > So for my suggestion, just do this: > > > regex_f=r'^.*(?=.{{{MIN},{MAX}}})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!$%^&*?@#-_+=]).*$' > > But the "^.*" and the ".*$" are not needed since RegexField uses > RegexValidator, which uses re.search(). > > On Thu, May 19, 2016 at 1:53 AM, Arun S > > wrote: > >> I Did try this, i think i am not doing it right: >> Could you tell what is that i am doing is wrong. >> I am now not able to provide multiple Regex in the forms.RegexField using >> the above method. >> >> >> >> regex_f=r'^.*(?=.{{{MIN},{MAX}}})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!$%^&*?@#-_+=])' >> old_password = forms.RegexField( >> label='Old Password', >> widget=ShowPasswordWidget(), >> >> *regex = regex_f.format(MIN=settings.PASSWORD_MIN_LEN, >> MAX=settings.PASSWORD_MAX_LEN) r'.*$',* >> error_messages={'invalid' : 'Password must contain at least 8 >> characters' >> ' with one upper case letter, one lower case letter,' >> ' one number (0-9) and one special character (!$%^&*?@#-_+=)'}) >> >> Previously i was using this as: >> - >>old_password = forms.RegexField( >> label='Old Password', >> widget=ShowPasswordWidget(), >> >> >> * >> regex=r'^.*(?=.{8,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!$%^&*?@#-_+=])' >>r'.*$', *error_messages={'invalid' : 'Password >> must contain at least 8 characters' >> ' with one upper case letter, one lower case letter,' >> ' one number (0-9) and one special character (!$%^&*?@#-_+=)'}) >> >> On Thursday, May 19, 2016 at 11:26:58 AM UTC+5:30, Stephen Butler wrote: >>> >>> I think I'd just use format() on the regex, being careful to escape '{' >>> and '}': >>> >>> regex_f=r'^.*(?=.*{{{MIN},{MAX}}}*)(?=.*\d)(? >>> =.*[a-z])(?=.*[A-Z])(?=.*[!$%^&*?@#-_+=])' >>> regex=regex_f.format(MIN=settings.MY_RE_MIN, MAX=settings.MY_RE_MAX) >>> >>> >>> On Thu, May 19, 2016 at 12:37 AM, Arun S wrote: >>> >>>> Hi, >>>> >>>> I have a Regular Expression something like this: >>>> regex=r'^.*(?=.*{8,}* >>>> )(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!$%^&*?@#-_+=])' >>>>r'.*$', >>>> >>>> In this, i would like to read the values from the Django Setting file >>>> on the Max and Min Length and provide them as my input instead of Hard >>>> Coding. >>>> >>>> How can a Variable be provided/escaped in a regex. >>>> Can some one throw some light on this ? >>>> >>>> Cheers >>>> Arun >>>> >>>> >>>> -- >>>> 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 https://groups.google.com/group/django-users. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/django-users/90556052-063e-4307-b095-c37a9920399b%40googlegroups.com >>>> >>>> <https://groups.google.com/d/msgid/django-users/90556052-063e-4307-b095-c37a9920399b%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> 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 th
Re: Regular Expression with Variables.
I Did try this, i think i am not doing it right: Could you tell what is that i am doing is wrong. I am now not able to provide multiple Regex in the forms.RegexField using the above method. regex_f=r'^.*(?=.{{{MIN},{MAX}}})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!$%^&*?@#-_+=])' old_password = forms.RegexField( label='Old Password', widget=ShowPasswordWidget(), *regex = regex_f.format(MIN=settings.PASSWORD_MIN_LEN, MAX=settings.PASSWORD_MAX_LEN) r'.*$',* error_messages={'invalid' : 'Password must contain at least 8 characters' ' with one upper case letter, one lower case letter,' ' one number (0-9) and one special character (!$%^&*?@#-_+=)'}) Previously i was using this as: - old_password = forms.RegexField( label='Old Password', widget=ShowPasswordWidget(), * regex=r'^.*(?=.{8,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!$%^&*?@#-_+=])' r'.*$', *error_messages={'invalid' : 'Password must contain at least 8 characters' ' with one upper case letter, one lower case letter,' ' one number (0-9) and one special character (!$%^&*?@#-_+=)'}) On Thursday, May 19, 2016 at 11:26:58 AM UTC+5:30, Stephen Butler wrote: > > I think I'd just use format() on the regex, being careful to escape '{' > and '}': > > regex_f=r'^.*(?=.*{{{MIN},{MAX}}}*)(?=.*\d)(? > =.*[a-z])(?=.*[A-Z])(?=.*[!$%^&*?@#-_+=])' > regex=regex_f.format(MIN=settings.MY_RE_MIN, MAX=settings.MY_RE_MAX) > > > On Thu, May 19, 2016 at 12:37 AM, Arun S > > wrote: > >> Hi, >> >> I have a Regular Expression something like this: >> regex=r'^.*(?=.*{8,}* >> )(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!$%^&*?@#-_+=])' >>r'.*$', >> >> In this, i would like to read the values from the Django Setting file on >> the Max and Min Length and provide them as my input instead of Hard Coding. >> >> How can a Variable be provided/escaped in a regex. >> Can some one throw some light on this ? >> >> Cheers >> Arun >> >> >> -- >> 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 https://groups.google.com/group/django-users. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/django-users/90556052-063e-4307-b095-c37a9920399b%40googlegroups.com >> >> <https://groups.google.com/d/msgid/django-users/90556052-063e-4307-b095-c37a9920399b%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> 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+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/2f010f88-0824-4f92-91c6-ccf9333d7dab%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Regular Expression with Variables.
Hi, I have a Regular Expression something like this: regex=r'^.*(?=.*{8,}*)(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!$%^&*?@#-_+=])' r'.*$', In this, i would like to read the values from the Django Setting file on the Max and Min Length and provide them as my input instead of Hard Coding. How can a Variable be provided/escaped in a regex. Can some one throw some light on this ? Cheers Arun -- 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+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/90556052-063e-4307-b095-c37a9920399b%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Django Password Validation
Hi, Thanks for the Suggestion. James, in the option that you provided makes the User change the Password of the Logged in user which might turn out to be a costly operation. But Yes, validating within the View and then using Authenticate() does sound easier. https://docs.djangoproject.com/en/1.9/topics/auth/default/#auth-web-requests I shall check this. Thanks. On Wednesday, May 18, 2016 at 1:22:16 PM UTC+5:30, James Schneider wrote: > > > > On Wed, May 18, 2016 at 12:08 AM, Arun S > > wrote: > >> Hi , >> >> I have a small issue with the Validation of Passwords in the Change >> Password Page. >> >> Due to certain different requirements, i have written my own Custom Forms >> for Change Password. >> >> Now in this, I would want to first Validate the Old Password Field with >> the Current Users Password. >> >> The Problem i am facing here is that the OldPassword Field provides me a >> Password in Raw String Format. >> But the user.password returns a Hashed Output of the Users Password >> >> And for obvious Reasons, the Validation fails between OldPassword and the >> User.Password. >> >> In many forums i checked that the Reverse way to get the Passed from the >> Hashed Values is not possible. >> So my only way to do this validation is through Encrypting the >> OldPassword and then Comparing the Hash. >> But i am not sure how to do that. >> > > Note that you are hashing the raw password, not encrypting it. Hashes are > not reversible by design. > > >> >> Can some one please tell me how is this possible to achieve and what are >> the Apis that i can use to get the Password to be compared. >> > > If your form has access to the username, I would recommend writing a > custom validator or clean() method for one of your password fields: > > https://docs.djangoproject.com/en/1.9/ref/forms/fields/#validators > > https://docs.djangoproject.com/en/1.9/ref/forms/validation/#cleaning-a-specific-field-attribute > > If you don't have access to the username (just the user ID in the DB), it > may be easier to run the validation in the view itself since you'll have > access to request.user to pass along to authenticate(). The form itself > (and therefore none of the clean() or validation functions) do not have > access to the request where the user object is stored. > > That's of course assuming that you are changing the password of the > logged-in user. > > You can then use the authenticate() method with the existing password in > your custom validation function to see if the provided password is the same > one the user is currently using. > > > https://docs.djangoproject.com/en/1.9/topics/auth/default/#django.contrib.auth.authenticate > > > -James > -- 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+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/8b7c14cc-044d-4562-9b96-61aa972f1798%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Django Password Validation
Hi , I have a small issue with the Validation of Passwords in the Change Password Page. Due to certain different requirements, i have written my own Custom Forms for Change Password. Now in this, I would want to first Validate the Old Password Field with the Current Users Password. The Problem i am facing here is that the OldPassword Field provides me a Password in Raw String Format. But the user.password returns a Hashed Output of the Users Password And for obvious Reasons, the Validation fails between OldPassword and the User.Password. In many forums i checked that the Reverse way to get the Passed from the Hashed Values is not possible. So my only way to do this validation is through Encrypting the OldPassword and then Comparing the Hash. But i am not sure how to do that. Can some one please tell me how is this possible to achieve and what are the Apis that i can use to get the Password to be compared. Arun. -- 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+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/9e1d304c-8d93-4b64-93ef-bab420fc0511%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Customised handling for wrong passwords entered in Login page in Django.
Thanks Simon, I could now do all kinds of Session logging by handling the signals. Great Information. Cheers Arun. On Tuesday, May 3, 2016 at 7:33:45 PM UTC+5:30, Simon Charette wrote: > > Hi Arun, > > If you only want to log failed login attempts I suggest you connect a > receiver to > the user_login_failed signal[1] instead. > > Cheers, > Simon > > [1] > https://docs.djangoproject.com/en/1.9/ref/contrib/auth/#django.contrib.auth.signals.user_login_failed > > Le mardi 3 mai 2016 06:01:59 UTC-4, Arun S a écrit : >> >> Hi, >> >> I was trying to add a Customised View to Handle Wrong Passwords entered >> by Users. >> >> As of now, Djangos Framework just outputs, "Invalid Username or Password" >> when a Wrong password is entered by the User. >> >> This doesnt allow much flexibility if some information such as Invalid >> Access needs to be Logged. >> Thus it would be good to Redirect these into a Customized view where the >> Logging of such information can be done and then redirected back to the >> Login page with Error. >> >> Any Ideas on how easily this can be done ? >> >> I tried adding a View when a Wrong password is called but always ended up >> in the below Error: >> >> File "/usr/lib/python2.7/site-packages/django/core/urlresolvers.py", >> line 578, in reverse >> return force_text(iri_to_uri(resolver._reverse_with_prefix(view, >> prefix, *args, **kwargs))) >> File "/usr/lib/python2.7/site-packages/django/core/urlresolvers.py", >> line 495, in _reverse_with_prefix >> (lookup_view_s, args, kwargs, len(patterns), patterns)) >> NoReverseMatch: Reverse for '' with arguments '()' and keyword arguments >> '{}' not found. 0 pattern(s) tried: [] >> >> >> The login.html looks as simple as this. >> td>{{ form.password }} >> {% if form.password.errors %} >> > class="error">You must specify a password. >> {% endif %} >> >> >> *{% if form.non_field_errors %} > id="password_error_div" class="error">Invalid username or >> password. {% endif %}* >> >> In the Highlighted case, i would like to handle the Error, Log the >> information to a file required and return back to the page. >> >> Any Help on how this can be done would be great. >> 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+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/49608f22-6f09-4741-a419-435f6dc88273%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Customised handling for wrong passwords entered in Login page in Django.
Hi, I was trying to add a Customised View to Handle Wrong Passwords entered by Users. As of now, Djangos Framework just outputs, "Invalid Username or Password" when a Wrong password is entered by the User. This doesnt allow much flexibility if some information such as Invalid Access needs to be Logged. Thus it would be good to Redirect these into a Customized view where the Logging of such information can be done and then redirected back to the Login page with Error. Any Ideas on how easily this can be done ? I tried adding a View when a Wrong password is called but always ended up in the below Error: File "/usr/lib/python2.7/site-packages/django/core/urlresolvers.py", line 578, in reverse return force_text(iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))) File "/usr/lib/python2.7/site-packages/django/core/urlresolvers.py", line 495, in _reverse_with_prefix (lookup_view_s, args, kwargs, len(patterns), patterns)) NoReverseMatch: Reverse for '' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: [] The login.html looks as simple as this. td>{{ form.password }} {% if form.password.errors %} You must specify a password. {% endif %} *{% if form.non_field_errors %} Invalid username or password. {% endif %}* In the Highlighted case, i would like to handle the Error, Log the information to a file required and return back to the page. Any Help on how this can be done would be great. 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+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/68866d38-d5e4-4aa6-a352-4c352d2b04b5%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Generation of Session IDs in Django
Hi, Just trying to get a few answers on the Session IDs in Django. > how does Django Generate Session IDs/Session Keys. It seems that Django does the following for Session Keys: def _get_new_session_key(self): "Returns session key that isn't being used." while True: session_key = get_random_string(32, VALID_KEY_CHARS) if not self.exists(session_key): break return session_key Does this mean that only a RANDOM string is chosen from the set of Valid Key Chars ?? If the Above is not the case, then Does Django Support any Cryptographic Algorithms for Genearting Session IDs? in that case Which Cryptographic Algorithm does Django Uses for Session IDs and how many Bits of Entropy is used.?? Any information on this would be very helpful. Thanks Arun -- 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+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/eba81953-c59f-4aba-b733-e320cc6fdef8%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Issue with Django Password Normalization
thanks for some very useful information. I did raise this in the dev forum but it was not agreed to be a question in that forum to discuss whether this should be taken up. I guess with all this input, this can be suggested tough. -- 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+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/5c82ac24-bcd4-474e-9a4f-96aa5dc0c737%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Issue with Django Password Normalization
For ex, adding the Django Code Snippet for handling User names in the Login Page : default_username = (unicodedata.normalize('NFKD', default_username) So Django does follow Normalizing of Usernames usign NFKD Algorithm. Then applies Hashing Algorithms on this. *But the same is never followed for Passwords.* Is this done on Purpose that the HASHING algorithm takes care of whatever required and Normalization isnt quite required for such purpose. Even the Django Documentation does'nt talk about Unicode Normalizing on Passwords but you can still find it for Other forms of Text inputs. On Wednesday, April 20, 2016 at 7:52:27 PM UTC+5:30, Rick Leir wrote: > > There is also a new issue in Trac on this topic. I added two links to > Stackoverflow discussions there. > > The issue: supposing a password is mañana. Depending on what client you > use, input methods can give you two different UTF8 characters for ñ. As a > first step, let's add test case, and check whether it fails. > > My guess (tho I am new to this) is that this is a Django issue not Python. > Cheers-- Rick -- 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+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/90031b13-bac4-4601-a684-fd10dcab27a7%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Issue with Django Password Normalization
Does that mean that Unicode Normalisation is a very weak and unsecure way for passwords? In this case, what is the actual Usage of Unicode Normalization ? Why exactly do we need something like a Unicode Normalization ? Offcourse django provides various ways to strengthen and vallidate the passwords. that can be used. But also Observed is that the Django Code does the Unicode Normalization for User names and Email Ids using NKFD Normalisation Algorithm. On Wednesday, April 20, 2016 at 6:51:18 PM UTC+5:30, Avraham Serour wrote: > > in summary: "Unicode Normalization Forms are formally defined > normalizations of Unicode strings which make it possible to determine > whether any two Unicode strings are equivalent to each other" > > as I see this would be highly unsecure for passwords, this is something > like converting special characters to latin characters, or forcing lower > case only > > On Wed, Apr 20, 2016 at 4:16 PM, Arun S > > wrote: > >> let me try to clear my question. >> >> please correct me if am wrong. >> basically all I want to know is that there already exists a number of >> Unicode normalization forms. >> Reference >> >> Unicode normalization forms: http://unicode.org/reports/tr15/#Norm_Forms >> >> so as I said as a part of a company norms, the project needs to follow >> certain csdl standards and according to that it states that all passwords >> shall be normalised according to the ref mentioned and then convert then to >> a utf8 which then follows thru the hashing process. >> >> so since the major part of the project uses djangos frameworks, I believe >> that the user authentication methods used already applies the hashing >> algorithms. >> >> but what I could not figure out is that >> 1: does django apply any such normalization process for the user >> passwords. >> 2: how is it different between a normalised password and then hashed with >> djangos hashing algorithm s and a non normalised password just saved after >> hashing. >> >> >> -- >> 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 https://groups.google.com/group/django-users. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/django-users/69f70909-215e-4daa-a770-a10b3c2de63a%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+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/9b11feda-914f-4516-9841-2dad8084654b%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Issue with Django Password Normalization
let me try to clear my question. please correct me if am wrong. basically all I want to know is that there already exists a number of Unicode normalization forms. Reference Unicode normalization forms: http://unicode.org/reports/tr15/#Norm_Forms so as I said as a part of a company norms, the project needs to follow certain csdl standards and according to that it states that all passwords shall be normalised according to the ref mentioned and then convert then to a utf8 which then follows thru the hashing process. so since the major part of the project uses djangos frameworks, I believe that the user authentication methods used already applies the hashing algorithms. but what I could not figure out is that 1: does django apply any such normalization process for the user passwords. 2: how is it different between a normalised password and then hashed with djangos hashing algorithm s and a non normalised password just saved after hashing. -- 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+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/69f70909-215e-4daa-a770-a10b3c2de63a%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Issue with Django Password Normalization
basically I would like to know if the latest version of django already supports any kind of normalization for the login passwords. -- 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+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/650f8db7-e8a3-4a43-aa21-346d9e39a878%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Issue with Django Password Normalization
Hi, As a Part of a very big project for a Company, we follow CSDL rules and we use Django Extensively. As a part of Django, we would like to Follow certain Normalisation Process for all the Passwords during User Login. In the Django Documentation, there isn’t any information on whether Django already follows any Particular Normalisation Process. Could anyone please let me know if Django already Follows certain Normalisation process. In case it does, what kind of Process is used and at which point is this applied? In case, there is no Normalisation process applied, then can a middleware be added to support this? Regards Arun. -- 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+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/e78eb4df-656d-4d63-aff1-4ff3cf969eb8%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.