# django-type创建类 ModelForm类创建

django-type创建类 ModelForm类创建

标签(空格分隔):
---一:type创建对象格式

type创建类格式:type('类名',(继承的类名,),字段名)

例: Myform=type('Myform',(Form,),fields_dict)
继承一个Form类,并且fields_dict,字段名可以根据自己需要,创建相应的格式.

实例
应用:创建一个Form类,并且自己创建字段


Myform=type('Myform',(Form,),fields_dict)
fields_dict['score_%s'%(quest.id)]=fields.ChoiceField(
label=quest.title,
error_messages={'required':'不能为空'},
widget=widgets.RadioSelect, #这里记住不能加括号
choices=[(i,i) for i in range(1,11)]
)
----------


ModelForm 应用

  1. 引用格式
    from django.forms import ModelForm,Form
    from django.forms import widgets
    from django.forms import fields
  2. 创建ModelForm.

    class QuestionModelForm(ModelForm):
    question_choice=fields.CharField(widget=widgets.Select(choices=(('1', '打分'),('2', '单选'),('3', '建议')))) #这里和Form类的用法是一样的.
    class Meta:
    model = models.Question #这里是引用Question的数据库
    fields = ['title','question_choice'] #格式化[]里面的字段,在html页面上显示的方法是{{questionModelForm.title}}.

  3. 属性用法.

    form = UserTypeModeForm(instance=obj) ###instance是初始化数据,用于html里初始化页面.

    form = UserTypeModeForm(data=request.POST) ###data是用户输入页面内容集合.

    form.is_valid(): ##表示数据获取成功.后续可以拿数据操作,否则没有结果.
    form.save(): ##数据直接创建到保存到相应数据库里.

转载于:https://www.cnblogs.com/52forjie/p/8018553.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Django ModelForm 中,你可以使用 `forms.ClearableFileInput` 来生成一个文件上传表单。如果你想要在表单中显示原有图片并且允许用户删除它,可以使用以下步骤: 1. 在 `forms.py` 文件中创建一个似下面的 `ModelForm`: ```python from django import forms from .models import YourModel class YourModelForm(forms.ModelForm): class Meta: model = YourModel fields = ('field1', 'field2', 'image_field') widgets = { 'image_field': forms.ClearableFileInput(attrs={'id': 'image-preview'}) } ``` 2. 在模板中使用 JavaScript 和 CSS 实现预览图片的功能。以下是一个示例代码: ```html {% extends "base.html" %} {% block content %} <form method="post" enctype="multipart/form-data"> {% csrf_token %} {{ form.as_p }} <img id="image-preview" src="{{ object.image_field.url }}" alt="Preview Image"> <button type="submit">Save</button> </form> {% endblock %} {% block javascript %} <script> // Show preview of the image function readURL(input) { if (input.files && input.files[0]) { var reader = new FileReader(); reader.onload = function (e) { $('#image-preview').attr('src', e.target.result); }; reader.readAsDataURL(input.files[0]); } } $('#id_image_field').change(function () { readURL(this); }); </script> {% endblock %} ``` 在这个示例中,我们使用 `forms.ClearableFileInput` 生成了一个文件上传表单,并指定了 `id` 为 `image-preview`。在模板中,我们使用 `<img>` 标签来显示原有图片并在用户上传新图片时刷新预览。我们还在模板的底部插入了一个 JavaScript 代码块,用于实现预览图片功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值