校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 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表單外鍵選項初始化的問題及解決方法的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    成人精品gif动图一区| 9i在线看片成人免费| 国产精品亚洲一区二区三区在线| 精品污污网站免费看| 午夜精品视频在线观看| 日韩欧美中文字幕一区| 国内精品在线播放| 中文字幕色av一区二区三区| 欧美视频一区二区三区四区 | 日韩av在线发布| 26uuu成人网一区二区三区| 国产精品一区三区| 亚洲影院久久精品| 欧美大片日本大片免费观看| 国产激情一区二区三区桃花岛亚洲| 国产精品久久久久久久久搜平片| 在线这里只有精品| 国产一区91精品张津瑜| 亚洲一区二区精品3399| 国产日韩欧美精品综合| 51精品国自产在线| 91原创在线视频| 国产一区亚洲一区| 五月综合激情婷婷六月色窝| 国产精品久久久久久久裸模| 久久综合久久鬼色中文字| 欧美在线不卡视频| 成人黄色软件下载| 九九精品视频在线看| 日韩精品色哟哟| 亚洲成av人**亚洲成av**| 国产精品久久久久久久久久久免费看 | 日韩欧美一区二区免费| 99国产精品久久久久| 精品中文av资源站在线观看| 婷婷开心激情综合| 亚洲黄色尤物视频| 日韩一区在线播放| 国产精品丝袜一区| 国产日产精品1区| 精品国产百合女同互慰| 日韩一二在线观看| 91精品国产黑色紧身裤美女| 在线观看免费视频综合| av中文字幕亚洲| 国产99久久久国产精品免费看| 久久激情五月婷婷| 奇米影视一区二区三区小说| 亚洲va国产天堂va久久en| 一区二区三区四区亚洲| 亚洲久草在线视频| 亚洲韩国精品一区| 午夜久久电影网| 日韩福利视频网| 美女脱光内衣内裤视频久久影院| 首页亚洲欧美制服丝腿| 日韩精品一卡二卡三卡四卡无卡| 日韩不卡一区二区三区| 久久精品国产精品青草| 久久精品国产亚洲高清剧情介绍| 韩国成人在线视频| 国产成人亚洲综合色影视| 懂色av一区二区夜夜嗨| 91视频你懂的| 欧美高清视频在线高清观看mv色露露十八| 欧美三级乱人伦电影| 91精品免费观看| 国产亚洲精品超碰| 亚洲欧美日韩人成在线播放| 亚洲国产日日夜夜| 久久99国产精品免费| 国产精品 欧美精品| 色成人在线视频| 欧美美女直播网站| 这里只有精品电影| 国产喂奶挤奶一区二区三区| 亚洲免费在线电影| 麻豆精品新av中文字幕| 国产福利一区二区| 欧美日韩成人在线| 国产欧美精品区一区二区三区 | 国产精品久99| 三级在线观看一区二区| 国产在线精品视频| 欧洲av一区二区嗯嗯嗯啊| 欧美tickling网站挠脚心| 国产精品久久久久久久久晋中| 亚洲国产cao| 风间由美一区二区三区在线观看| 欧美午夜精品久久久久久孕妇 | 久久精品亚洲精品国产欧美 | 久久国产精品99久久久久久老狼 | 亚洲人成伊人成综合网小说| 麻豆精品一区二区综合av| 一本色道a无线码一区v| 日韩欧美不卡在线观看视频| 国产精品久久久久久久久晋中| 日本视频在线一区| 日本道在线观看一区二区| 久久久影视传媒| 蜜桃久久久久久久| 欧美色图激情小说| 亚洲特级片在线| 国产一区二区三区蝌蚪| 91精品国产综合久久久久久久| 亚洲欧美另类小说| 国产河南妇女毛片精品久久久| 欧美一区二区高清| 午夜视频在线观看一区二区三区| a亚洲天堂av| 国产精品久久久久久久久久久免费看 | 久久精品在这里| 蜜臀av一区二区| 欧美日韩中文字幕精品| 一区二区三区视频在线观看| 高清国产一区二区| 久久人人超碰精品| 国产乱码精品1区2区3区| 日韩欧美一区在线观看| 偷偷要91色婷婷| 欧美日韩亚洲综合一区| 一区二区三区久久| 在线观看日韩一区| 亚洲综合一区二区精品导航| 91美女片黄在线观看91美女| 136国产福利精品导航| gogogo免费视频观看亚洲一| 国产精品久久久久久久久久免费看 | 国产精品素人一区二区| 国产成人午夜视频| 国产网站一区二区| 不卡电影一区二区三区| 中文字幕在线观看不卡| 97久久久精品综合88久久| 国产精品久久久久aaaa樱花| av中文字幕不卡| 亚洲综合丝袜美腿| 欧美日韩亚洲综合一区二区三区| 亚洲高清一区二区三区| 欧美三级电影网站| 免费观看一级欧美片| 久久久夜色精品亚洲| 99久久精品免费精品国产| 亚洲一区二区欧美| 日韩天堂在线观看| 国产成人免费视频网站 | 综合久久久久久| 精品视频一区 二区 三区| 日本亚洲欧美天堂免费| 久久品道一品道久久精品| 99免费精品视频| 亚洲成人精品在线观看| 日韩三级视频中文字幕| 成人一级黄色片| 香港成人在线视频| 久久婷婷久久一区二区三区| 色综合中文字幕国产| 亚洲综合另类小说| 精品国产一区二区三区四区四| 国产91精品露脸国语对白| 亚洲一区二区三区四区在线| 精品三级在线观看| 一本大道av一区二区在线播放| 日本伊人精品一区二区三区观看方式| 国产亚洲一二三区| 欧美丰满美乳xxx高潮www| 国产mv日韩mv欧美| 奇米综合一区二区三区精品视频| 中文字幕久久午夜不卡| 777奇米四色成人影色区| 国产成人精品影视| 日韩电影在线观看网站| 《视频一区视频二区| 精品久久国产老人久久综合| 色婷婷久久99综合精品jk白丝 | 91精品综合久久久久久| 99久久久免费精品国产一区二区| 伦理电影国产精品| 亚洲国产精品视频| 国产精品麻豆视频| 2021久久国产精品不只是精品| 欧美在线视频全部完| eeuss影院一区二区三区| 国产美女精品人人做人人爽| 日韩精品91亚洲二区在线观看| 国产精品久久久久久久久果冻传媒 | 99久久99久久综合| 欧美三级资源在线| 午夜欧美一区二区三区在线播放| 亚洲免费在线观看| 美女在线视频一区| 久久精品亚洲乱码伦伦中文| av亚洲精华国产精华精华| 亚洲欧美日韩国产一区二区三区| 99re8在线精品视频免费播放| 免费的国产精品| 久久久久久久综合狠狠综合| 日本一区二区视频在线| 日韩精品一区在线| 精品国产乱码久久久久久1区2区|