簡體   English   中英

如何在沒有默認值的 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對象,它們分別是: WarriorMageRouge ,我如何在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字段,以防止定義兩個具有相同designationRole

暫無
暫無

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

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