Python django:如何从CharField和ModelChoiceField中获取值
我有一个GroupAdminForm类,用于扩展Django中的group admin页面。有两个字段,选择的更改和打印名称。我设计要做的是在“selected_to_change”中选择一列,并在“print_name”中输入一个字符名,以便进行如下查询:Python django:如何从CharField和ModelChoiceField中获取值,python,django,django-forms,django-admin,django-models,Python,Django,Django Forms,Django Admin,Django Models,我有一个GroupAdminForm类,用于扩展Django中的group admin页面。有两个字段,选择的更改和打印名称。我设计要做的是在“selected_to_change”中选择一列,并在“print_name”中输入一个字符名,以便进行如下查询: UPDATE "annotation" SET print_name= "value of print_name" WHERE id = "value of selected_to_change"; 以下是GroupAdminForm
UPDATE "annotation"
SET print_name= "value of print_name"
WHERE id = "value of selected_to_change";
以下是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
如何从CharField和ModelChoiceField中获取值,以便在save()方法中进行此类查询?谢谢。您已经在使用self.cleaned\u数据中保存的表单中的数据
print self.cleaned_data['select_to_change']
print self.cleaned_data['print_name']
为什么你不能像对待
用户那样从self.cleaned_data
中获取它们?请注意,group.user\u set
几乎肯定不是您认为的那样,实际上也没有在数据库中设置任何内容。非常感谢!我不知道这些值已经存在于数据中。如果这解决了您遇到的问题,您应该写一个答案部分,详细说明所需的确切更改。