python - django view Session ID -missing for user not logged in -


on current project want user able fill in forms without having sign first (to make them more use service).

on below view i'm trying either save registered user form data, or if user isn't registered save session id temporary user id.

however when try use session id returns none. i'm not sure why data missing? (session have default django setup in apps , middleware per docs). note when user logged in seem have user id not when no user logged in.

view:

class servicetypeview(createview):     form_class = servicetypeform     template_name = "standard_form.html"     success_url = '/'      def form_valid(self, form):         if self.request.user.is_authenticated():             form.instance.user = self.request.user         else:             form.instance.temp_user = self.request.session.session_key         super().form_valid(form)         online_account = form.cleaned_data['online_account']         if online_account:             return redirect('../online')         else:             return redirect('../address') 

model:

class euser(models.model):      supplier1 = models.onetoonefield(supplieraccount)     supplier2 = models.onetoonefield(supplieraccount)     supplier3 = models.onetoonefield(supplieraccount)     online_account = models.booleanfield()     address = models.onetoonefield(address, null=true)     temp_user = models.charfield(max_length=255, null=true)     user = models.onetoonefield(settings.auth_user_model, null=true, default=none)   class supplieraccount(models.model):     supplier = models.foreignkey(supplier)     username = models.charfield(max_length=255)     password = models.charfield(max_length=255) 

form:

class servicetypeform(forms.modelform):     # bool_choices = ((false, 'no'), (true, 'yes'))      # online_account = forms.booleanfield(widget=forms.radioselect(choices=bool_choices))      def __init__(self, *args, **kwargs):         super(servicetypeform, self).__init__(*args, **kwargs)         self.fields['service_type'].initial = 'd'      class meta:         model = euser         fields = ('service_type', 'online_account') 

the session key exist if there data set in session dictionary already. logged in users have session key because django stores authentication related data in session default, key assigned because of that.

you can ensure key exists tossing data session storage before trying key.


Comments

Popular posts from this blog

java - pagination of xlsx file to XSSFworkbook using apache POI -

Unlimited choices in BASH case statement -

apache - How do I stop my index.php being run twice for every user -