I have a class GroupAdminForm which is used to extend the group admin page in Django. There are two fields, selected_to_change and print_name. What I am designing to do is to select a column in "selected_to_change" and enter a char name in "print_name" , in order to make a query like:
UPDATE "annotation"
SET print_name= "value of print_name"
WHERE id = "value of selected_to_change";
Here is the GroupAdminForm:
class GroupAdminForm(forms.ModelForm):
users = forms.ModelMultipleChoiceField(queryset=User.objects.all(),
widget=FilteredSelectMultiple('Users', False),
required=False)
select_to_change = forms.ModelChoiceField(queryset=Annotation.objects.all(), required=False)
print_name = forms.CharField(required=False)
class Meta:
model = Group
def __init__(self, *args, **kwargs):
instance = kwargs.get('instance', None)
if instance is not None:
initial = kwargs.get('initial', {})
initial['users'] = instance.user_set.all()
initial['locations'] = instance.c_locations.all()
kwargs['initial'] = initial
super(GroupAdminForm, self).__init__(*args, **kwargs)
def save(self, commit=True):
group = super(GroupAdminForm, self).save(commit=commit)
if commit:
group.user_set = self.cleaned_data['users']
else:
old_save_m2m = self.save_m2m
def new_save_m2m():
old_save_m2m()
group.user_set = self.cleaned_data['users']
self.save_m2m = new_save_m2m
return group
How can I get the values from the CharField and ModelChoiceField to make such queries in the method save()? Thanks.
You are already using data from the saved form in self.cleaned_data.
print self.cleaned_data['select_to_change']
print self.cleaned_data['print_name']
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With