this is the code:
def create(request, form_class=MapForm, template_name="maps/create.html"):
map_form = form_class(request.POST or None)
if map_form.is_valid():
map = map_form.save(commit=False)
and the map_form is :
class MapForm(forms.ModelForm):
slug = forms.SlugField(max_length=20,
help_text = _("a short version of the name consisting only of letters, numbers, underscores and hyphens."),
#error_message = _("This value must contain only letters, numbers, underscores and hyphens."))
)
def clean_slug(self):
if Map.objects.filter(slug__iexact=self.cleaned_data["slug"]).count() > 0:
raise forms.ValidationError(_("A Map already exists with that slug."))
return self.cleaned_data["slug"].lower()
def clean_name(self):
if Map.objects.filter(name__iexact=self.cleaned_data["name"]).count() > 0:
raise forms.ValidationError(_("A Map already exists with that name."))
return self.cleaned_data["name"]
class Meta:
model = Map
fields = ('name', 'slug', 'description')
and i want to know : what is the ‘map’ used for ?
updated:
what is the ‘map.members’ mean ???
map.members.add(request.user)
I am not sure which map you exactly mean, but if it is this:
then it is just a variable called
mapthat holds an instance of theMapmodel/class. Whenever you save a model form, you get an instance of the respective model back.By using
commit=Falseyou explicitly say that this instance should not be saved into the database (now). This is mostly used to do something else with the model before you save it into the database. To refer to your question: The current user is related to the newly createdmapinstance. As this has to be done in the view (to access the request that contains the user), the instance is not saved at first, the user is added, then the instance is saved.So if you want to save this instance you have to call the
save()method on this instance manually:But I would not name the variable
mapas Python has a builtin function namedmap(). If you try to call this function later in your code, it would probably raise aTypeErroras you are overriding the functions name with an instance of some object.Read more about model forms.