フォームのフィールドをオーバーライドしたいときに問題が発生します
クラスは以下のようになります
class UserCreationForm(forms.ModelForm):
class Meta:
model = User
fields = ['password', 'services', 'project', 'email', 'name', 'first_name', 'role']
「サービス」フィールドを別の値に変更したいと考えています。このために、次のように get_form 関数を使用しました。
class UserAdmin(admin.ModelAdmin):
exclude = ('uuid',)
search_fields = ('email', "project")
list_display = ("email", "project", "nb_connexion")
form = UserCreationForm
def get_form(self, request, obj=None, **kwargs):
if obj != None:
print(obj.name)
print(request)
form = super(UserAdmin, self).get_form(request, obj=obj, **kwargs)
form.base_fields['services'].initial = Service.objects.filter(projects=obj.project)
return form
しかし、1 つのプロジェクトのサービスを取得することにのみ関心がある場合でも、すべてのサービスで同じ結果が得られます。
ありがとう