慕田峪4524236
2024-01-15 15:44:26
我需要?jiǎng)?chuàng)建一個(gè)表單,將Player對(duì)象Role作為下拉字段中的選擇,但顯示其字符串字段。models.pyclass Player(models.Model): role = models.ForeignKey(role) ...class Role(models.Model): designation = models.CharField()forms.pyclass PlayerForm(ModelForm): class Meta: model = Player fields = ['role']假設(shè)我有三個(gè)role對(duì)象designation,分別為:Warrior、Mage、Rouge,我如何在PlayerForm實(shí)例中將其顯示為下拉列表,沒(méi)有默認(rèn)值,因此用戶(hù)必須選擇一個(gè)?目前,此代碼將對(duì)象顯示為對(duì)象本身(Role object (1), Role object (2), ...)
2 回答

慕桂英546537
TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超10個(gè)贊
我認(rèn)為這主要是渲染對(duì)象的問(wèn)題。您可以定義一個(gè)__str__方法來(lái)指定如何Role呈現(xiàn) s:
class Role(models.Model):
designation = models.CharField(max_length=128, unique=True)
def __str__(self):
return self.designation
您可能還希望將 設(shè)置designation為unique=True字段,以防止使用Role相同的定義兩個(gè)designation。

飲歌長(zhǎng)嘯
TA貢獻(xiàn)1951條經(jīng)驗(yàn) 獲得超3個(gè)贊
添加
def __str__(self): return self.designation
到你的Role
班級(jí),你的所有選擇都變成實(shí)名)
添加回答
舉報(bào)
0/150
提交
取消