Django 使用表单与包含外键的模型交互
所以我试着做一些非常简单的事情,但我已经尝试了好几年,只是自己找不到答案 我正在尝试创建一个表单来添加devicetype。在这种形式下,数据库中应该有一个现有供应商的下拉菜单。唯一的问题是,我似乎无法在表单中显示供应商的名称。而是显示实例名称。“供应商对象(1)”,“供应商对象(2)”。如何更改它以显示名称 以下是我的模型:Django 使用表单与包含外键的模型交互,django,django-forms,Django,Django Forms,所以我试着做一些非常简单的事情,但我已经尝试了好几年,只是自己找不到答案 我正在尝试创建一个表单来添加devicetype。在这种形式下,数据库中应该有一个现有供应商的下拉菜单。唯一的问题是,我似乎无法在表单中显示供应商的名称。而是显示实例名称。“供应商对象(1)”,“供应商对象(2)”。如何更改它以显示名称 以下是我的模型: class Vendors(models.Model): name = models.CharField(max_length=30) class Devic
class Vendors(models.Model):
name = models.CharField(max_length=30)
class DeviceTypes(models.Model):
name = models.CharField(max_length=30)
vendor = models.ForeignKey(Vendors, on_delete=models.PROTECT)
这是我的表格:
class AddDeviceTypeForm(forms.ModelForm):
"""
Form to add a devicetype to database
"""
class Meta:
model = DeviceTypes
fields = ['name', 'vendor']
我的看法是:
def addDeviceType(request):
"""
view shows and processes form to add a device type
"""
form = AddDeviceTypeForm()
args = {
'form': form
}
return render(request, 'cmdb/addDeviceType.html', args)
我正在用以下内容显示表单:
<form action="" method="post">
{% csrf_token %}
{{form}}
<input type="submit" value="Create" />
</form>
{%csrf_令牌%}
{{form}}
要显示供应商名称,您需要将方法添加到供应商模型中:
class Vendors(models.Model):
name = models.CharField(max_length=30)
def __str__(self):
return self.name
要显示供应商名称,您需要将方法添加到供应商模型:
class Vendors(models.Model):
name = models.CharField(max_length=30)
def __str__(self):
return self.name
谢谢我觉得这应该很简单。谢谢!我觉得这应该很简单。