簡體   English   中英

如何在 Django 模板的下拉列表中顯示值?

[英]How to Display value in Drop-down in Django Template?

我正在嘗試從數據庫的下拉列表中顯示值,並且我通過id獲取值,但它只顯示一個保存在我的數據庫中的值。 但我想要所有下拉值。 請讓我知道如何在下拉列表中顯示所有值。

這是我的models.py文件,其中編寫了下拉代碼...

TYPES = [
 ('A', 'Active'),
 ('D', 'Not Active'),
]

並且這些值使用選項以另一種模式保存,並且AD存儲在我的數據庫中。 這是我的views.py文件..

def getdata(request, id):
    display=Mymodel.objects.filter(pk=id).first()
    context={'display':display}
    return render(request, 'page.html', context)

這是我的page.html文件,我在下拉列表中顯示數據..

<select name='types'>
   <option value="{{display.types}}">{{display.get_types_display}} 
  </option>
</select>

但這僅顯示在下拉Active值中,但我想要這兩個值,我想使用此表單編輯數據。 並且如果A保存在我的數據庫中,那么在默認情況下應該選擇Active ,如果D保存在我的數據庫中,那么默認情況下應該選擇Not Active ,其余值應該顯示在下拉列表中。

如果你想要有表單並且能夠添加數據,那么你需要在 forms.py 中創建模型表單。 不幸的是,您還沒有編寫模型代碼,只是您希望使用的選項(添加 Mymodel 定義 - 它應該命名為 MyModel 以符合 Camel 表示法,但這不是錯誤)。

在您的 Mymodel 中,您應該有這樣的字段:

some_type = models.CharField(max_length=1, choices=TYPES)

當您在表單中使用模型時,您應該使用稱為 ModelForm 的特殊版本的表單。 它是這樣定義的:

class MymodelForm(ModelForm):

class Meta:
    model = Mymodel
    fields = '__all__'

some_type = ModelChoiceField(
    widget=forms.RadioSelect,
)

您還應該更新您的 views.py,但這通常是在 Django 中完成的方式。

查看這個類似的問題: Dropdown in Django Model並參考 Val F 的回答

或查看官方 Django 文檔

將類型轉換為元組

TYPES = (
 ('A', 'Active'),
 ('D', 'Not Active'),
) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM