У вас есть несколько вариантов.
Первый и простой выбор - просто измените __str__
в вашей модели.
Вот так.
class ItemsDetail(models.Model):
name = models.CharField(max_length=100,unique=True)
sellPrice = models.FloatField()
costPrice = models.FloatField()
quantity = models.IntegerField()
def __str__(self):
return self.sellPrice
Но вы можете 't используйте этот подход, если вы хотите __str__
для другого поля.
Во-вторых, вы можете переопределить formfield_for_foreignkey
.
class ItemsChoiceField(forms.ModelChoiceField):
def label_from_instance(self, obj):
return "Item: {}".format(obj.name)
class YourOrderAdmin(admin.ModelAdmin):
...
def formfield_for_foreignkey(self, db_field, request, **kwargs):
if db_field.name == 'item':
return ItemsChoiceField(queryset=ItemsDetail.objects.all())
return super().formfield_for_foreignkey(db_field, request, **kwargs)
Для получения более подробной информации, проверьте django admin cookbook