0

フォームのフィールドをオーバーライドしたいときに問題が発生します

クラスは以下のようになります

   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 つのプロジェクトのサービスを取得することにのみ関心がある場合でも、すべてのサービスで同じ結果が得られます。

ありがとう

4

1 に答える 1