Wenn Sie die Feldbezeichnung meinen:
mit dem Code von: Django Admin - Überschreiben des Widgets eines benutzerdefinierten Formularfeldes
# forms.py
from django import forms
from django.contrib import admin
class ProductAdminForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(ProductAdminForm, self).__init__(*args, **kwargs)
self.fields['tags'].label = 'Custom Label'
In Ihrem ModelAdmin-Objekt geben Sie dann das Formular an:
from django.contrib import admin
from models import Product
from forms import ProductAdminForm
class ProductAdmin(admin.ModelAdmin):
form = ProductAdminForm
admin.site.register(Product, ProductAdmin)
Wenn Sie die Bezeichnungen in der Dropdown-Liste meinen:
Überschreiben Sie das Widget wie in der obigen Antwort.
éditer :
Das Standardformularfeld für ein fk-Feld ist ein Modellauswahlfeld. Vom docs
Les Unicode m wird aufgerufen, um eine String Repräsentationen der Objekte zur Verwendung in den Auswahlen des Feldes zu erzeugen; um angepasste ModelChoiceField und überschreiben Sie label_from_instance. Diese Methode wird ein Model-Objekt erhalten und sollte eine Zeichenkette zurückgeben, die zur repräsentieren. Zum Beispiel:
class MyModelChoiceField(ModelChoiceField):
def label_from_instance(self, obj):
return obj.name_with_model()
und dann:
class SmallPartAdminForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(SmallPartAdminForm, self).__init__(*args, **kwargs)
self.fields['parent'] = MyModelChoiceField(queryset=Part.objects.all())