第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

Django ModelForm 類:刪除外鍵下拉菜單約束

Django ModelForm 類:刪除外鍵下拉菜單約束

胡說叔叔 2023-07-05 16:30:11
我正在使用 Django 開發(fā)一個(gè)字典應(yīng)用程序。我在使用 Django 類成功創(chuàng)建表單時(shí)遇到問題,該類允許用戶向現(xiàn)有和ModelForm新詞典詞條提交新定義。我的模型.py:class Headword(models.Model):    headword = models.CharField(max_length=64, unique=True)class Definition(models.Model):    definition = models.CharField(max_length=64)    headword = models.ForeignKey(Headword, related_name="definitions_headword")我的forms.py:class DefinitionForm(forms.ModelForm):    class Meta:        model = Definition        fields = ["headword", "definition"]我的 HTML 表單:<form action="{% url 'dictionary:define' %}" method="post">    {% csrf_token %}    {{ form }}    <button type="submit">Define</button></form>所有的結(jié)果是一個(gè)表格:包含數(shù)據(jù)庫中已有的所有詞條的下拉菜單,定義的文本輸入字段,提交按鈕。因此,使用上述代碼,僅允許用戶向已存在的詞條添加定義。正如我所說,我想改變這一點(diǎn)并采用這種形式,以便用戶能夠向現(xiàn)有詞條(下拉菜單中的詞條)和新詞條(用戶只需輸入的詞條)提交定義。這意味著我根本不需要表單中的下拉菜單,而只需要兩個(gè)不受約束的文本輸入字段和一個(gè)提交按鈕。我怎樣才能做到這一點(diǎn)?widgetsPS:我嘗試使用類中的字典將下拉菜單覆蓋為文本輸入字段DefinitionForm。然而,當(dāng)我嘗試提交表單時(shí),這會導(dǎo)致標(biāo)題表單字段上方出現(xiàn)一條錯(cuò)誤消息:選擇一個(gè)有效的選擇。該選擇不是可用的選擇之一。
查看完整描述

1 回答

?
慕碼人8056858

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超6個(gè)贊

由于您有一個(gè)外鍵類型字段,它會自動(dòng)將小部件更改為下拉列表,因此我會將這一更改保留在小部件字典中。

看起來您正在尋找多對多關(guān)系。查看 Django 文檔并查找表單集和內(nèi)聯(lián)表單集。

但是,如果您打算在創(chuàng)建定義的同時(shí)創(chuàng)建新的中心詞,那么這部分就有點(diǎn)棘手了。

為了進(jìn)行測試,請嘗試將該字段更改為常規(guī)文本輸入,以 CSV(或其他易于解析的其他內(nèi)容)形式提交詞條數(shù)據(jù)并對其進(jìn)行解析。對于每個(gè)結(jié)果,如果詞條不存在,您可以在數(shù)據(jù)庫中創(chuàng)建它,然后關(guān)聯(lián)定義。如果確實(shí)如此,您只需將其關(guān)聯(lián)即可。

如果它有效,下一步就是找到一個(gè)允許您遵循相同思維方式的小部件 - 我想不出任何,抱歉:/


查看完整回答
反對 回復(fù) 2023-07-05
  • 1 回答
  • 0 關(guān)注
  • 107 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號