gpt4 book ai didi

python - Django ModelForm显示外键的模型字段而不是对象ID

转载 作者:行者123 更新时间:2023-12-02 16:22:51 25 4
gpt4 key购买 nike

我试图在模板的选择字段中显示模型字段。我正在使用在选择字段中选择的外键。问题是只显示对象 ID。

如何让它显示我的外键的模型字段(例如来自证书模型的“crt_id”)而不是对象和 ID? (见图)

enter image description here

提前致谢

我的代码:

证书模型

class Certificate(models.Model):
crt_id = models.CharField(max_length=60)
crt_expire = models.DateTimeField()
crt_active = models.BooleanField(default=False)

设备型号

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)

表单.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'
]

最佳答案

您需要定义您的模型将返回什么。

只需在设备模型定义的末尾添加如下内容:

def __str__(self):
return self.device_name

或者您希望退回的任何东西,或者在您的情况下是:

def __str__(self):
return self.device_certificate

并在 Certificate 模型中执行相同的操作以指示它应该返回什么。

一种流行的做法是像这样组合多个字段:

def __str__(self):
return self.device_name + ' (' + self.device_certificate + ')'

或您需要的任何其他组合。

关于python - Django ModelForm显示外键的模型字段而不是对象ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65184364/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com