Copy Source | Copy HTML<br/> class UserForm (forms.Form):<br/> username = forms.CharField()<br/> joined_on = forms.DateField() <br/>
Copy Source | Copy HTML<br/> class UserForm (forms.Form):<br/> username = forms.CharField()<br/> plan = forms.ModelChoiceField(queryset = Plan.objects.none())<br/> <br/> def __init__ (self, subdomain, *args, **kwargs):<br/> self .default_username = default_username<br/> super ( UserForm , self). __init__ (*args, **kwargs)<br/> self .fields[ 'plan' ].queryset = Plan.objects. filter (subdomain = subdomain) <br/>
Copy Source | Copy HTML<br/> class UserForm (forms.Form):<br/> username = forms.CharField()<br/> <br/> def save (self):<br/> data = self .cleaned_data<br/> user = User.objects.create(username = data[ 'username' ])<br/> #create a profile <br/> UserProfile.objects.create(user = user, ...some more data...) <br/>
Copy Source | Copy HTML<br/> class UserForm (forms.Form):<br/> username = forms.CharField()<br/> <br/> def clean_username (self):<br/> data = self .cleaned_data<br/> try :<br/> User.objects.get(username = data[ 'username' ])<br/> except User.DoesNotExist:<br/> return data[ 'username' ]<br/> raise forms.ValidationError( 'This username is already taken.' ) <br/>
Copy Source | Copy HTML<br/> class UserForm (forms.Form):<br/> username = forms.CharField()<br/> <br/> password1 = forms.PasswordField()<br/> password2 = forms.PasswordField()<br/> <br/> def clean (self):<br/> data = self .cleaned_data<br/> if "password1" in data and "password2" in data and data[ "password1" ] != data[ "password2" ]:<br/> raise forms.ValudationError( "Passwords must be same" ) <br/>
Copy Source | Copy HTML<br/> def get_user_form_for_user (user):<br/> class UserForm (forms.Form):<br/> username = forms.CharField()<br/> fields = user .get_profile().all_field()<br/> #Use field to find what to show. <br/>
Copy Source | Copy HTML<br/> #in forms.py <br/> class UserForm (forms.ModelForm):<br/> class Meta :<br/> model = User<br/> fields = [ "username" , "email" ]<br/> <br/> class UserProfileForm (forms.ModelForm):<br/> class Meta :<br/> model = UserProfile<br/> <br/> #in views.py <br/> def add_user (request):<br/> ...<br/> if request.method == "POST" :<br/> uform = UserForm (data = request.POST)<br/> pform = UserProfileForm (data = request.POST)<br/> if uform.is_valid() and pform.is_valid():<br/> user = uform.save()<br/> profile = pform.save(commit = False)<br/> profile .user = user<br/> profile .save()<br/> ....<br/> ...<br/> <br/> #in template <br/><form method= "post" ><br/> {{ uform.as_p }}<br/> {{ pform.as_p }}<br/> <input type= "submit" ...><br/></form> <br/>
Copy Source | Copy HTML<br/> #IN views.py <br/> def survey (request, survey_slug)<br/> ...<br/> questions = survey .questions. all ()<br/> question_forms = []<br/> for question in questions:<br/> qform = QuestionForm(question=question, prefix = question.slug)<br/> question_forms.append(qform)<br/> ...<br/> if request.method == "POST" :<br/> for question in questions:<br/> qform = QuestionForm(question=question, prefix = question.slug, data = request.POST)<br/> #Validate and do save action <br/> ...<br/> ... <br/>
Source: https://habr.com/ru/post/81632/
All Articles