• 小金鱼呀 python-django-初识Form组件(Form实时更新)


    在使用选择标签时,需要注意choices的选项可以从数据库中获取,但是由于是静态字段 ***获取的值无法实时更新***,那么需要自定义构造方法从而达到此目的。

    方式一:(推荐)

     1 from app01 import models
     2 from django.forms.models import ModelChoiceField
     3 from django.forms import Form
     4 from django.forms import widgets
     5 from django.forms import fields
     6 
     7 class LoveForm(forms.Form):
     8     price = fields.IntegerField()
     9     user_id = fields.IntegerField(
    11         widget=widgets.Select()
    12     )
    13 
    14     def __init__(self,*args,**kwargs):
    15         # 拷贝所有的静态字段,复制给self.fields
    16         super(LoveForm,self).__init__(*args,**kwargs)
    17         self.fields['user_id'].widget.choices = models.UserInfo.objects.values_list('id', 'username')

    方式二:

    使用django提供的ModelChoiceField和ModelMultipleChoiceField字段来实现

     1 from app01 import models
     2 from django.forms.models import ModelChoiceField
     3 from django import forms
     4 from django.forms import fields
     5 from django.forms import widgets
     6 
     7 class LoveForm(forms.Form):
     8     user_id2 = ModelChoiceField(
     9         queryset=models.UserInfo.objects.all(),
    10         to_field_name='id'
    11     )

    方式二显示的为对象,若要显示数据库里的具体值,需要在建表models.py里加入

        def __str__(self):
            return self.username
  • 相关阅读:
    贪心算法
    分治法
    递归法
    查找二 树与图的搜索
    (转载)查找三 哈希表的查找
    (转载)查找一 线性表的查找
    4.写出完整版的strcpy函数
    3.strcpy使用注意(3)
    2.strcpy使用注意(2)
    1.strcpy使用注意
  • 原文地址:https://www.cnblogs.com/GodLv/p/9585251.html
Copyright © 2020-2023  润新知