首页 > 解决方案 > Django以表格形式获取关系名称

问题描述

我正在尝试创建一个 crud,您可以在其中添加商店,并选择商店是否处于活动状态,所以我的模型如下所示:

class Store(models.Model):
status = models.ForeignKey(Status, on_delete=models.PROTECT)
name = models.CharField(max_length=100)
address = models.CharField(max_length=100)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)

和我的表格:

class StoreForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
    super(StoreForm, self).__init__(*args, **kwargs)
    for visible in self.visible_fields():
        visible.field.widget.attrs['class'] = 'form-control'

Status = forms.ModelChoiceField(queryset=Status.objects.all())

class Meta:
    model = Store
    fields = "__all__"

我想做的是在字段状态中获取该关系的名称,例如活动或非活动,但我正在使用状态对象(1)和状态对象(1)进行选择

例子

标签: djangodjango-modelsdjango-forms

解决方案


Status模型的定义中。在方法中添加所需的字段__str__

像这样:

class Status(models.Model):
    [... Your fields...]

    def __str__(self):
        return self.<your_field>

通过替换<your_field>为您希望在下拉列表中显示的字段的名称。


推荐阅读