fbz*_*zyx 2 python django django-models django-forms
我正在尝试在模板中的选择字段中显示模型字段。我正在使用在选择字段中选择的外键。问题是只显示对象 ID。
我怎样才能让它显示我的外键的模型字段(例如证书模型中的“crt_id”)而不是对象和ID?(见图)
先感谢您
我的代码:
证书型号
class Certificate(models.Model):
crt_id = models.CharField(max_length=60)
crt_expire = models.DateTimeField()
crt_active = models.BooleanField(default=False)
Run Code Online (Sandbox Code Playgroud)
设备型号
class Device(models.Model):
device_name = models.CharField(max_length=64)
device_group = models.CharField(max_length=64)
device_certificate = models.ForeignKey(Certificate, models.SET_NULL, blank=True, null=True)
Run Code Online (Sandbox Code Playgroud)
表格.py
class DeviceForm(forms.ModelForm):
device_group = forms.CharField(required=False)
device_name = forms.CharField(required=True)
class Meta:
model = Device
fields = [
'device_name',
'device_group',
'device_certificate'
]
Run Code Online (Sandbox Code Playgroud)
您需要定义模型将返回什么。
只需在设备模型定义的末尾添加如下内容:
def __str__(self):
return self.device_name
Run Code Online (Sandbox Code Playgroud)
或者您希望退回的任何内容,或者根据您的情况,它将是:
def __str__(self):
return self.device_certificate
Run Code Online (Sandbox Code Playgroud)
并在证书模型中执行相同的操作以指示它应该返回什么。
流行的做法之一是将多个字段组合起来,如下所示:
def __str__(self):
return self.device_name + ' (' + self.device_certificate + ')'
Run Code Online (Sandbox Code Playgroud)
或您需要的任何其他组合。
| 归档时间: |
|
| 查看次数: |
2351 次 |
| 最近记录: |