def get_modelinstance_form(metadata_class): model_class = metadata_class._meta.get_model('modelinstance') # Restrict content type choices to the models set in seo_models content_types = get_seo_content_types(metadata_class._meta.seo_models) # Get a list of fields, with _content_type at the start important_fields = ['_content_type'] + ['_object_id'] + core_choice_fields(metadata_class) _fields = important_fields + list(fields_for_model(model_class, exclude=important_fields).keys()) class ModelMetadataForm(forms.ModelForm): _content_type = forms.ModelChoiceField( queryset=ContentType.objects.filter(id__in=content_types), empty_label=None, label=capfirst(_("model")), ) _object_id = forms.IntegerField(label=capfirst(_("ID"))) class Meta: model = model_class fields = _fields return ModelMetadataForm
def get_modelinstance_form(metadata_class): model_class = metadata_class._meta.get_model('modelinstance') # Restrict content type choices to the models set in seo_models content_types = get_seo_content_types(metadata_class._meta.seo_models) # Get a list of fields, with _content_type at the start important_fields = ['_content_type'] + ['_object_id'] + core_choice_fields( metadata_class) _fields = important_fields + list(fields_for_model(model_class, exclude=important_fields).keys()) class ModelMetadataForm(forms.ModelForm): _content_type = forms.ModelChoiceField( queryset=ContentType.objects.filter(id__in=content_types), empty_label=None, label=capfirst(_("model")), ) _object_id = forms.IntegerField(label=capfirst(_("ID"))) class Meta: model = model_class fields = _fields return ModelMetadataForm
def get_model_form(metadata_class): model_class = metadata_class._meta.get_model('model') # Restrict content type choices to the models set in seo_models content_types = get_seo_content_types(metadata_class._meta.seo_models) content_type_choices = [(x._get_pk_val(), smart_str(x)) for x in ContentType.objects.filter(id__in=content_types)] # Get a list of fields, with _content_type at the start important_fields = ['_content_type'] + core_choice_fields(metadata_class) _fields = important_fields + list(fields_for_model(model_class, exclude=important_fields).keys()) class ModelMetadataForm(forms.ModelForm): _content_type = forms.ChoiceField(label=capfirst(_("model")), choices=content_type_choices) class Meta: model = model_class fields = _fields def clean__content_type(self): value = self.cleaned_data['_content_type'] try: return ContentType.objects.get(pk=int(value)) except (ContentType.DoesNotExist, ValueError): raise forms.ValidationError("Invalid ContentType") return ModelMetadataForm
def get_model_form(metadata_class): model_class = metadata_class._meta.get_model('model') # Restrict content type choices to the models set in seo_models content_types = get_seo_content_types(metadata_class._meta.seo_models) content_type_choices = [(x._get_pk_val(), smart_text(x)) for x in ContentType.objects.filter(id__in=content_types)] # Get a list of fields, with _content_type at the start important_fields = ['_content_type'] + core_choice_fields(metadata_class) _fields = important_fields + list(fields_for_model(model_class, exclude=important_fields).keys()) class ModelMetadataForm(forms.ModelForm): _content_type = forms.ChoiceField(label=capfirst(_("model")), choices=content_type_choices) class Meta: model = model_class fields = _fields def clean__content_type(self): value = self.cleaned_data['_content_type'] try: return ContentType.objects.get(pk=int(value)) except (ContentType.DoesNotExist, ValueError): raise forms.ValidationError("Invalid ContentType") return ModelMetadataForm