1
は、私は次のコードを持っている関係フィールドにテキストを変更する方法:Djangoの管理
models.pyを
from django.db import models
from parler.models import TranslatableModel, TranslatedFields
class Federation(TranslatableModel):
translations = TranslatedFields(
name = models.CharField('name', max_length=50)
)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
class Athlete(models.Model):
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
federation = models.ForeignKey('Federation', on_delete=models.SET_NULL, null=True)
height = models.IntegerField();
weight = models.IntegerField();
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
はadmin.py
from django.contrib import admin
from parler.admin import TranslatableAdmin
from .models import Athlete, Federation
class AthleteAdmin(admin.ModelAdmin):
list_display = ['first_name', 'last_name', 'height', 'weight', 'get_federation_name']
fields = ['first_name', 'last_name', 'height', 'weight', 'federation']
def get_federation_name(self, obj):
obj.federation.set_current_language('en')
return obj.federation.name
get_federation_name.short_description = 'Federation'
class FederationAdmin(TranslatableAdmin):
search_fields = ['translations__name']
list_display = ['name']
fields = ['name']
admin.site.register(Federation, FederationAdmin)
admin.site.register(Athlete, AthleteAdmin)
フェデレーションフィールドがリストとして表示され選択メニューのテキストは「フェデレーションオブジェクト」として表示されます。このリストについては、関連するFederationモデルの翻訳関係からデータを取得する関数を作成しました。私はフォームフィールドで同じことをしたい。これをフォームフィールドで機能させないようにすると、同じように動作するようにリスト表示を変更します。
私はPythonとDjango(初回)には新しく、この問題の解決策を見つけることができません。
ありがとうございました!
私が探していたものです。ありがとうございました! PythonとDjangoは本当に私のコーディング方法をもっと楽しませました。 – Gasim