婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Django表單外鍵選項初始化的問題及解決方法

Django表單外鍵選項初始化的問題及解決方法

熱門標簽:蘇州電銷機器人十大排行榜 幫人做地圖標注收費算詐騙嗎 溫州旅游地圖標注 遼寧400電話辦理多少錢 悟空智電銷機器人6 電信營業廳400電話申請 外呼不封號系統 江蘇房產電銷機器人廠家 荊州云電銷機器人供應商

問題描述

先說明一下問題的由來:
Django的模型中經常會用ForeignKey來關聯其他表格數據

class MeasureTask(models.Model):
    taskname = models.CharField(max_length=LEN_FULLNAME, verbose_name="任務名稱")
    road = models.ForeignKey(Road, on_delete=models.CASCADE, verbose_name="設計路段")
    # 路面層,附加一個參數 ,指定這個層的厚度,相對于底層的厚度
    # road_level = models.ForeignKey(RoadLevel, on_delete=models.CASCADE, verbose_name="路面層")
    level_thick = models.IntegerField(default=0, verbose_name="層厚(mm)")
    # ...

使用Django的ModelForm轉化為表單代碼如下:

class MeasureTaskNewForm(forms.ModelForm):
    class Meta:
        model = MeasureTask
        fields = ('taskname', 'staff', 'start_mileage', 'end_mileage',
                  'road', 'level_thick', 'step', 'equip', 'comment')

如果不做進一步處理,在網頁中使用這個From時,關聯字段會自動轉化為一個select控件,里面包含了所有選項,如下圖:

實際應用時,需要對關聯的字段做一些選擇過濾。期望的結果如下:

解決方式

在From類中設置一個初始化函數:

class MeasureTaskNewForm(forms.ModelForm):
    class Meta:
        model = MeasureTask
        fields = ('taskname', 'staff', 'start_mileage', 'end_mileage',
                  'road', 'level_thick', 'step', 'equip', 'comment')

    # 對參數作初始化設置,導致返回之后的Form驗證失敗
    def __init__(self, road_choices=None, *args, **kwargs):
        super(MeasureTaskNewForm, self).__init__(*args, **kwargs)
        if road_choices:
            self.fields['road'].choices = road_choices

應用這個類的方式如下,注意傳入參數的數據類型,

 # 對關聯數據過濾
        roads = Road.objects.filter(project=p_item) 
        # 生成值,分別對應于 html 中 select->option 設置
        choices = roads.values_list('id', 'name')
        dataform = MeasureTaskNewForm(road_choices=choices)
        # dataform = MeasureTaskNewFormShadow()
        return render(request, "mdata/html/measure_task_add.html", locals())

生成的html代碼:

select name="road" id="id_road" class="form-control">
  option value="1">北四環主線/option>
  option value="5">匝道A/option>
/select>

到這里生成的表單頁面沒有問題了,但是表單提交返回時如果還是用這個From來接收Request數據,則會出現數據校驗失敗的問題

if request.method == "POST":
        dataform = MeasureTaskNewForm(request.POST)
        # 這里將出現校驗失敗的問題
        if dataform.is_valid():
            dataform.save()
        return redirect('mdata:measure_task', pid=p_item.id)

為了解決這個問題,另外做了一個沒有初始化函數的表單類來接收數據.

# 影子表單模型
class MeasureTaskNewFormShadow(forms.ModelForm):
    class Meta:
        model = MeasureTask
        fields = ('taskname', 'staff', 'start_mileage', 'end_mileage',
                  'road', 'level_thick', 'step', 'equip', 'comment')
if request.method == "POST":
        dataform = MeasureTaskNewFormShadow(request.POST)
        if dataform.is_valid():
            dataform.save()
        return redirect('mdata:measure_task', pid=p_item.id)

感覺這里應該有更好的方法,嘗試對Form的初始化函數做了一些修改,但是沒有成功。

參考資料

https://qastack.cn/programming/813418/django-set-field-value-after-a-form-is-initialized

http://hk.uwenku.com/question/p-vdjpsmjn-bes.html

https://www.itranslater.com/qa/details/2325790729974580224

到此這篇關于Django表單外鍵選項初始化的文章就介紹到這了,更多相關Django表單初始化內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • django表單中的按鈕獲取數據的實例分析
  • Django def clean()函數對表單中的數據進行驗證操作
  • Django 構建模板form表單的兩種方法
  • Django form表單與請求的生命周期步驟詳解
  • Django model.py表單設置默認值允許為空的操作
  • Django表單提交后實現獲取相同name的不同value值
  • Django框架獲取form表單數據方式總結
  • django之從html頁面表單獲取輸入的數據實例
  • 解決django中form表單設置action后無法回到原頁面的問題
  • django-xadmin根據當前登錄用戶動態設置表單字段默認值方式
  • Django給表單添加honeypot驗證增加安全性

標簽:景德鎮 欽州 黃山 宿遷 三沙 喀什 濟南 臺灣

巨人網絡通訊聲明:本文標題《Django表單外鍵選項初始化的問題及解決方法》,本文關鍵詞  Django,表單,外鍵,選項,初始化,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Django表單外鍵選項初始化的問題及解決方法》相關的同類信息!
  • 本頁收集關于Django表單外鍵選項初始化的問題及解決方法的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 狠狠色狠狠色综合日日91app| 久久久91精品国产一区二区精品| 欧美va天堂va视频va在线| 无码av免费一区二区三区试看 | 欧美日韩成人在线| 精品欧美一区二区三区精品久久| 91在线观看高清| 视频一区视频二区中文字幕| 99视频国产精品| av亚洲精华国产精华精华 | 欧美videossexotv100| 欧美日韩中字一区| 成人丝袜18视频在线观看| 国产精品青草综合久久久久99| 中文字幕一区二区在线观看| 欧美日本一区二区三区四区| 欧美在线观看视频在线| 欧美久久一二区| 6080日韩午夜伦伦午夜伦| 久久综合999| 伊人婷婷欧美激情| 成人免费毛片app| 国产三级一区二区| 久久久777精品电影网影网| 亚洲色图20p| 日本一不卡视频| av网站一区二区三区| 777xxx欧美| 中文字幕一区二区三区在线播放 | 中文字幕日本乱码精品影院| 天堂成人免费av电影一区| 亚洲午夜日本在线观看| 成人涩涩免费视频| 26uuu久久综合| 91美女在线看| 国产精品久久综合| 成人免费观看av| 亚洲综合色成人| 4438亚洲最大| 337p粉嫩大胆噜噜噜噜噜91av| 亚洲日穴在线视频| 一本大道久久精品懂色aⅴ| 成人av在线资源网站| 欧美不卡一区二区| 午夜精品久久久久久久蜜桃app| 国产资源精品在线观看| 亚洲国产视频一区二区| 久久夜色精品一区| 亚洲免费三区一区二区| 在线免费观看日本欧美| 亚洲精品成人悠悠色影视| 日本不卡在线视频| 成人深夜视频在线观看| 亚洲日本一区二区| 亚洲精品你懂的| av成人免费在线观看| 亚洲成人精品一区二区| 亚洲欧美综合另类在线卡通| 精品美女一区二区| 日韩情涩欧美日韩视频| 在线观看亚洲a| 欧美吻胸吃奶大尺度电影 | 午夜精品久久久久久久| 日韩1区2区3区| 亚洲一区二区三区在线看| 一区二区成人在线| 国产精品不卡视频| 亚洲色图在线播放| 亚洲欧美综合色| 亚洲综合色自拍一区| 日韩毛片在线免费观看| 亚洲女人小视频在线观看| 一区二区三区免费网站| 日韩中文字幕区一区有砖一区| 日韩精品电影在线| 国产91对白在线观看九色| 欧美一区午夜视频在线观看| 日本欧美在线观看| 国产精品久久久久影视| 欧美亚洲动漫制服丝袜| 免费成人深夜小野草| 久久综合av免费| 91成人在线精品| 国产一区二区不卡老阿姨| 亚洲综合激情网| 精品乱码亚洲一区二区不卡| 不卡视频一二三| 久国产精品韩国三级视频| 日韩一区有码在线| 欧美日韩国产乱码电影| 成人永久看片免费视频天堂| 亚洲主播在线观看| 国产精品灌醉下药二区| 精品国产免费一区二区三区四区| 色综合天天视频在线观看| 国产精品99久久久久久有的能看| 爽爽淫人综合网网站| 国产成人精品免费看| 亚洲另类春色校园小说| 日本成人在线网站| 久久久青草青青国产亚洲免观| 亚洲精品在线观| 91在线视频免费观看| 久久99精品国产91久久来源| 亚洲视频你懂的| 国产日韩精品视频一区| 日韩一区和二区| 在线中文字幕不卡| 国产精品99精品久久免费| 亚洲无人区一区| 亚洲欧洲综合另类在线| 精品国产91亚洲一区二区三区婷婷| 成人午夜看片网址| 美女性感视频久久| 丝袜美腿亚洲色图| 亚洲福利电影网| 国产精品夫妻自拍| 国产欧美精品日韩区二区麻豆天美| 日本电影欧美片| 在线亚洲+欧美+日本专区| 丁香天五香天堂综合| 无吗不卡中文字幕| 亚洲一二三区不卡| 亚洲另类春色校园小说| 亚洲欧美日韩一区| 欧美国产日本韩| 26uuu国产电影一区二区| 欧美日韩国产区一| 在线视频一区二区免费| 91精品福利视频| 欧美人与z0zoxxxx视频| 中文在线免费一区三区高中清不卡| 亚洲在线观看免费| 午夜精品免费在线| 欧美精品三级在线观看| 91精品国产综合久久久久久漫画 | 美女看a上一区| 色婷婷香蕉在线一区二区| 精品精品欲导航| 免费观看久久久4p| 欧美在线一区二区| 亚洲精品视频免费观看| 99久久久精品| 中文字幕五月欧美| www.久久久久久久久| 久久九九久久九九| 国产乱妇无码大片在线观看| 欧美一级片免费看| 91女神在线视频| 91精品黄色片免费大全| 亚洲日穴在线视频| www.亚洲免费av| 国产精品久久久久久一区二区三区| 蜜桃91丨九色丨蝌蚪91桃色| 在线观看91视频| 亚洲品质自拍视频| 国产福利一区二区三区视频| 69久久夜色精品国产69蝌蚪网| 亚洲男人的天堂在线观看| 成人动漫一区二区在线| 欧美国产精品专区| 粉嫩一区二区三区性色av| 日韩一级二级三级精品视频| 婷婷综合五月天| 日韩你懂的在线播放| 美女诱惑一区二区| 欧美精选一区二区| 五月天精品一区二区三区| 91在线国产观看| 一区二区三区四区乱视频| 久久午夜免费电影| 亚洲18色成人| 欧美v日韩v国产v| 成人午夜视频网站| 中文字幕一区二区视频| 欧美日韩国产美| 国产成人精品三级麻豆| 亚洲精选一二三| 日韩一区二区电影在线| 亚洲国产日韩综合久久精品| 奇米影视在线99精品| 国产日韩欧美精品综合| 欧美一区二视频| 日韩视频一区在线观看| 亚洲成人精品影院| 亚洲色图20p| 国产v日产∨综合v精品视频| 天堂一区二区在线| 亚洲制服欧美中文字幕中文字幕| 久久精品一级爱片| 久久久久久久综合| 久久精品日产第一区二区三区高清版 | 欧美日韩1区2区| 肉丝袜脚交视频一区二区| 成人福利视频网站| 性做久久久久久免费观看| 久久久久久久久久久久电影| 日韩一级片在线播放| 色欧美乱欧美15图片|