Как вывести ForeignKey нужное поле, а не значение pk в django forms?

В поле формы device выводится pk указатель на foreignkey, а мне надо чтобы в форме выводилось name. Как сделать?

выводит pk

forms

 class SimpleOrderEditForm(forms.ModelForm):
        def __init__(self, *args, **kwargs):
            self.request = kwargs.pop('request', None)
            super(SimpleOrderEditForm, self).__init__(*args, **kwargs)
    self.fields['category_service'].choices = [(k, v) for k, v in self.fields['category_service'].choices if k not in status_excluded]
            self.fields['device'] = ChoiceTxtField(queryset=Device.objects.filter(category_service__in=self.fields['category_service'].queryset).order_by('-used'))
    
        class Meta:
            model = Orders
            fields = ['category_service', 'device']
    
            widgets = {
                'category_service': forms.Select(attrs={'class': 'form-control', 'autocomplete': 'on'}),
            }

models

class Device(models.Model):
    name = models.CharField(max_length=150, db_index=True, unique=True)
    used = models.IntegerField(default=0)
    category_service = models.ForeignKey('Category_service', default=1, on_delete=models.SET_DEFAULT, null=True)

    def __str__(self):
        return str(self.name)

    def __repr__(self):
        return str(self.name)

class Orders(models.Model):
    device = models.ForeignKey(Device, default=1,  on_delete = models.SET_DEFAULT, null=True, related_name='get_device')
    category_service = models.ForeignKey('Category_service', default=1, on_delete=models.SET_DEFAULT, null=True, related_name='get_category_service')

    def __str__(self):
        return str(self.pk)

Тебе на форме для FK нужно не текстовое поле выводить, а селектор с выбором

Вернуться на верх