我需要创建一个表单,将Player对象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']假设我有三个role对象designation,分别为:Warrior、Mage、Rouge,我如何在PlayerForm实例中将其显示为下拉列表,没有默认值,因此用户必须选择一个?目前,此代码将对象显示为对象本身(Role object (1), Role object (2), ...)
2 回答
慕桂英546537
TA贡献1848条经验 获得超10个赞
我认为这主要是渲染对象的问题。您可以定义一个__str__方法来指定如何Role呈现 s:
class Role(models.Model):
designation = models.CharField(max_length=128, unique=True)
def __str__(self):
return self.designation
您可能还希望将 设置designation为unique=True字段,以防止使用Role相同的定义两个designation。
添加回答
举报
0/150
提交
取消