Posted on Nov. 24, 2013
Django's forms are powerful and simple to use. In most cases, you'll be declaring your fields explicitly. But sometimes you need dynamic forms, and overriding some class methods will let you do just that. This post will show you what to do.
Let's say you want to dynamically add a field to a model form if the user hasn't provided a first name.
First, we declare our model form:
1 2 3 4 5 6
from django import forms from models import Widget class WidgetModelForm(forms.ModelForm): class Meta: model = Widget
Now we override the constructor, adding our field:
1 2 3 4 5 6 7 8
class WidgetModelForm(forms.ModelForm): def __init__(self, request, *args, **kwargs): super(WidgetModelForm, self).__init__(*args, **kwargs) if not request.user.first_name: self.fields['first_name'] = forms.CharField() class Meta: model = Widget
And that's it. Somewhere in our app views, we'd use this form like so:
1 2 3
def my_view(self, request): form = WidgetModelForm(request, request.POST or None) # .. and so on
A few notes:
Looking to use dynamic forms in the admin? Be sure to read the follow up post.
Very nice and useful. Thanks!
Dynamic forums are present in all over the world and use as platform to show your abilities and your work to get success in life. Here is the detail of the writemyessay4me.org in which Django dynamic forums are most helpful to getting the solution of problem and show your ability.
Dynamic Django models enable clients to characterize alter and populate their own database tables and apply run time pattern changes to the database, Django dynamic models is approximately found on the run time dynamic. Appreciative such an amazing for sharing this radiant data. Bird Box Sarah Paulson Coat
Il y a toujours un problème dans le processus de vente, c'est-à-dire que le client a une méfiance vis-à-vis du personnel de vente. Ils pensent que les informations obtenues auprès du personnel de vente de la cartier Montre auront souvent des degrés différents d'exagération et de fausseté, aussi être une fraude. Par conséquent, de nombreux clients pensent que les paroles du vendeur peuvent être entendues ou non dans le processus de communication avec le personnel de vente, ne s'en soucient souvent pas trop et même se disputer avec le personnel de vente avec une psychologie rebelle.breitling Montre
I learned a lot form this article. These kinds of articles help me learning Django Dynamic Forms. This website always helps me finding any topic I am interested in. This is a very good website. If you are a fan of Harley Davidson motorbikes, then you must check out our site, Harley Davidson Motorcycles For Sale
Good Inspirational Content. Thanks for telling and changing perception. We provide academic content help services to students who are looking for assignments help for their high school and colleges. Visit : Make my Assignments https://www.makemyassignments.com/au/ https://www.makemyassignments.com/nz/
MyAssignmentHelper.co.uk is among the best companies on the online assignment writing market. We offer top-notch essays, Assignments, research papers, thesis and other types of works that can be assigned to you at a high school or college. Check out what we offer, try working with our paper writing service.
Such a nice blog post on this topic. I am Adam Hebrew form Aberdeen, the UK associated with myassignmenthelp.co.uk. My Assignment help has been the leading essay writing service since 2007. Each essay is written by a fully qualified writer who specializes in your chosen subject area. https://myassignmenthelp.co.uk/essay-help/essay-writing-services.html