![](/img/trans.png)
[英]How to set default selected value in django ModelForm ForeignKey
[英]How to display a ForeignKey field in a ModelForm with no default value?
我需要為Player
創建一個表單,該表單將Role
對象作為下拉字段中的選項,但顯示的是它們的字符串字段。
models.py
class Player(models.Model):
role = models.ForeignKey(role)
...
class Role(models.Model):
designation = models.CharField()
forms.py
class PlayerForm(ModelForm):
class Meta:
model = Player
fields = ['role']
假設我有三個role
對象,它們分別是: Warrior
、 Mage
、 Rouge
,我如何在designation
實例PlayerForm
其顯示為下拉列表,沒有默認值,因此用戶必須選擇一個?
目前此代碼將對象顯示為對象本身( Role object (1)
, Role object (2)
,...)
添加
def __str__(self):
return self.designation
到你的Role
class,你所有的選擇都會變成真實姓名)
我認為這主要是渲染對象的問題。 您可以定義一個__str__
方法來指定Role
的呈現方式:
class Role(models.Model):
designation = models.CharField(max_length=128, unique=True)
def __str__(self):
return self.designation
您可能還希望將designation
設置為unique=True
字段,以防止定義兩個具有相同designation
的Role
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.