Как показать foregin key другой модели django в полях django admin или наборах полей django admin

У меня есть две модели Django: Bot и Seller.

class Bot (models.Model):
    nick_name = models.CharField    (verbose_name="Nick Name",   max_length=100)
    wallet_coins =  models.CharField (verbose_name="Bot Coins",   max_length=30, default="0")
    wallet_coins_initial = models.CharField (verbose_name="Initial Coins", max_length=30, default="0")
    order_amount = models.CharField (verbose_name="Order Amount",  max_length=30, default="0")
    ## it's obtained from sum of initial-coins and order-amount:
    final_coins = models.CharField (verbose_name="Final Coins",   max_length=30, default="0")

class Seller (models.Model):
    bot = models.ForeignKey         ('Bot',  on_delete=models.CASCADE, verbose_name="Bot Name", blank=True, null=True)
    market = models.ManyToManyField ('MarketTransfer', verbose_name="Market Card(s)")
    name =        models.CharField  (verbose_name="Seller Name",  max_length=100)
    price_ratio = models.CharField  (verbose_name="Price Ratio",  max_length=10, default="1.5")
    emulate_final_coins = models.CharField ( verbose_name="Emulated Final Coins", max_length=30, default="0")

Когда я хочу использовать свойство fields или fieldsets для изменения порядка полей, я вижу ошибку ниже:

Изображение ошибки: https://imgur.com/a/HxgcN24

.

FieldError at /admin/ea_app/seller/1/change/

Неизвестное поле (поля) (show_bot_name) указано для Продавца. Проверьте

fields/fieldsets/exclude атрибуты класса SellerAdmin.

Я хочу изменить расположение полей в Django Admin. Коды ниже работают без проблем. но мне нужно изменить расположение полей. к сожалению, я вижу ошибку (картинка выше).

class SellerAdminInLine (admin.TabularInline):
    model = Seller.market.through
    verbose_name = "In-Use Cards"
    verbose_name_plural = "In-Use Cards"

class SellerAdmin (admin.ModelAdmin):
    readonly_fields = ['total_price', 'show_bot_coins', 'show_bot_final_coins', 'emulate_final_coins']  
    list_per_page = 10
    list_display_links = ['name']
    list_display  =  ['name', 'wallet_coins', 'price_ratio', 'show_bot_name', 'show_bot_coins', 'added_at']
    search_fields =  ['show_bot_name', 'name']
    filter_horizontal = ['market']
    inlines = [SellerAdminInLine]
    
    ###fields = [('show_bot_name',)]
  
    
    @admin.display(description="Bot Name")
    def show_bot_name (self, obj):
        return (obj.bot.ea_username + " <|> " + obj.bot.nick_name)
    
    @admin.display(description="Bot Coins")
    def show_bot_coins (self, obj):
        return obj.bot.wallet_coins
    
    @admin.display(description="Bot Final Coins")
    def show_bot_final_coins (self, obj):
        return obj.bot.final_coins
    
    
    @admin.display(description="Total Price")
    ## it's obtained from sum of active-transfer cards within the BOT.
    def total_price (self, obj):
        return obj.bot.wallet_coins
    
admin.site.register (Seller, SellerAdmin)

изображение кодов выше:

https://imgur.com/a/pH1xlif

примечание: также я хочу иметь возможность выбирать бота из другой модели. добавление "show_bot_name" в readonly_fields не решает мою проблему.

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