ModelAdmin에서 사용자 정의 필드에 초기 값을 할당하는 방법은 무엇입니까?

아프 달리스 멘

모델의 onetonefield를 통해 django 사용자 인증을 확장하려고합니다. 모델은 다음과 같습니다.

from django.db import models
from django.contrib.auth.models import User
from django.db.models.signals import post_save
from django.dispatch import receiver


class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    nim = models.CharField(max_length=10, blank=True)

    def __str__(self):
        return self.user.username

기본 관리자 패널을 사용하여 먼저 사용자 인스턴스를 만든 다음 프로필을 만듭니다. 하지만 관리 패널에서 사용자 지정 양식을 사용하므로 하나의 양식에서 만들 수 있습니다.

프로필 추가 양식

이것은 forms.py입니다.

from django import forms
from django.contrib.auth.models import User

from .models import Profile  


class ProfileForm(forms.ModelForm):
    username = forms.CharField(required=False, max_length=150)
    password = forms.CharField(required=False, max_length=50, widget=forms.PasswordInput)

    class Meta:
        model = Profile
        fields = ('username', 'password', 'nim')

그리고 이것은 admin.py입니다.

from django.contrib import admin
from django.contrib.auth.models import User

from .forms import ProfileForm
from .models import Profile


class ProfileAdmin(admin.ModelAdmin):
    form = ProfileForm

    def save_model(self, request, obj, form, change):
        username = form.cleaned_data['username']
        password = form.cleaned_data['password']
        user = User.objects.create_user(username=username, password=password)
        user.save()
        obj.user = user
        obj.save()


admin.site.register(Profile, ProfileAdmin)

이것으로 프로필 인스턴스를 잘 만들 수 있습니다. 그러나 프로필을 변경 / 편집하려고 할 때 사용자 이름 및 암호 필드에 대한 초기 값이 표시되지 않고 nim 필드 만 표시되었습니다.

빈 사용자 이름 및 비밀번호 필드

당신의 도움을 주셔서 감사합니다

오 하드 젊은이

이 시도:

class ProfileAdmin(admin.ModelAdmin):
    form = ProfileForm
    # ...
    def get_form(self, request, obj=None, *args, **kwargs):
        form = super(ProfileAdmin, self).get_form(request, *args, **kwargs)
        #find the user via user profile forien key
        the_user = User.objects.filter(pk=Profile.user.pk)
        # Initial values
        form.base_fields['username '].initial = the_user.username
        return form

또한 이것을 시도하고 차이점을보십시오 : (필드는 슈퍼 호출 후에 만 ​​살아 있습니다)

        form.fields['username '].initial = the_user.username

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

WooCommerce에서 용어 사용자 정의 필드 값을 얻는 방법은 무엇입니까?

분류에서Dev

사용자 정의 htmlhelper에서 "class"의 기본 속성 값을 추가하는 방법은 무엇입니까?

분류에서Dev

Yosys의 초기 블록에 RAM 값을 할당하는 방법은 무엇입니까?

분류에서Dev

관련 모델의 개체를 사용하여 ModelForm에서 필드의 초기 값을 채우는 방법은 무엇입니까?

분류에서Dev

JS DataTables를 사용하여 필드에 기본값을 설정하는 방법은 무엇입니까?

분류에서Dev

다른 고급 사용자 정의 필드에서 고급 사용자 정의 필드 선택 값을 얻는 방법은 무엇입니까?

분류에서Dev

Django에서 사용자 정의 양식의 필드 이름을 지정하는 방법은 무엇입니까?

분류에서Dev

MaterialUI 버튼의 'startIcon'에 사용자 정의 아이콘을 할당하는 방법은 무엇입니까?

분류에서Dev

컨텍스트에서 사용자 필드 값을 설정하는 방법은 무엇입니까?

분류에서Dev

반응에서 초기 값을 설정하는 방법은 무엇입니까?

분류에서Dev

Modal의 사용자 정의 값으로 ReactNative에서 상태를 초기화하는 가장 좋은 방법은 무엇입니까?

분류에서Dev

jquery 그리드에 사용자 정의 정렬 기능을 추가하는 방법은 무엇입니까?

분류에서Dev

사용자 정의 tableViewCell 내에서 UiPickerView를 초기화하는 방법은 무엇입니까?

분류에서Dev

AWK에서 필드 구분 기호에 정규식을 사용하는 방법은 무엇입니까?

분류에서Dev

한 모델의 필드 값을 다른 모델의 필드에 할당하는 방법은 무엇입니까?

분류에서Dev

Umbraco에서 드롭 다운 목록의 기본값을 할당하는 방법은 무엇입니까?

분류에서Dev

튜플 값에 대한 사용자 지정 비교기를 사용하여 사전의 정렬 된 표현을 만드는 방법은 무엇입니까?

분류에서Dev

코드에서 DialogField의 값을 할당하는 방법은 무엇입니까?

분류에서Dev

Python을 사용하여 JIRA에서 사용자 정의 필드 값을 업데이트하는 방법은 무엇입니까?

분류에서Dev

onMeasure 후 사용자 지정 SurfaceView에서 비트 맵을 할당하는 방법은 무엇입니까?

분류에서Dev

numpy 배열의 특정 행과 열에 문자열 값을 할당하는 방법은 무엇입니까?

분류에서Dev

Chrome의 입력 필드에서 자동 초점을 비활성화하는 방법은 무엇입니까?

분류에서Dev

Gnome 3에서 사용자 지정 스크린 샷을 정의하고 키보드 단축키에 할당하는 방법은 무엇입니까?

분류에서Dev

값을 직접 할당하는 대신 정적 생성자에서 정적 변수를 초기화하는 이점은 무엇입니까?

분류에서Dev

하나의 초기 값으로 mutate에서 lag / lead를 사용하는 방법은 무엇입니까?

분류에서Dev

awk에서 정규식을 필드 구분 기호로 사용하는 방법은 무엇입니까?

분류에서Dev

다른 열의 값을 기반으로 열에 기본값을 할당하는 방법은 무엇입니까?

분류에서Dev

AngularJs의 사용자 지정 필터에 $ scope 값을 전달하는 방법은 무엇입니까?

분류에서Dev

Waterline ORM을 사용하여 Sails 모델의 필드에 대한 기본값을 설정하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    WooCommerce에서 용어 사용자 정의 필드 값을 얻는 방법은 무엇입니까?

  2. 2

    사용자 정의 htmlhelper에서 "class"의 기본 속성 값을 추가하는 방법은 무엇입니까?

  3. 3

    Yosys의 초기 블록에 RAM 값을 할당하는 방법은 무엇입니까?

  4. 4

    관련 모델의 개체를 사용하여 ModelForm에서 필드의 초기 값을 채우는 방법은 무엇입니까?

  5. 5

    JS DataTables를 사용하여 필드에 기본값을 설정하는 방법은 무엇입니까?

  6. 6

    다른 고급 사용자 정의 필드에서 고급 사용자 정의 필드 선택 값을 얻는 방법은 무엇입니까?

  7. 7

    Django에서 사용자 정의 양식의 필드 이름을 지정하는 방법은 무엇입니까?

  8. 8

    MaterialUI 버튼의 'startIcon'에 사용자 정의 아이콘을 할당하는 방법은 무엇입니까?

  9. 9

    컨텍스트에서 사용자 필드 값을 설정하는 방법은 무엇입니까?

  10. 10

    반응에서 초기 값을 설정하는 방법은 무엇입니까?

  11. 11

    Modal의 사용자 정의 값으로 ReactNative에서 상태를 초기화하는 가장 좋은 방법은 무엇입니까?

  12. 12

    jquery 그리드에 사용자 정의 정렬 기능을 추가하는 방법은 무엇입니까?

  13. 13

    사용자 정의 tableViewCell 내에서 UiPickerView를 초기화하는 방법은 무엇입니까?

  14. 14

    AWK에서 필드 구분 기호에 정규식을 사용하는 방법은 무엇입니까?

  15. 15

    한 모델의 필드 값을 다른 모델의 필드에 할당하는 방법은 무엇입니까?

  16. 16

    Umbraco에서 드롭 다운 목록의 기본값을 할당하는 방법은 무엇입니까?

  17. 17

    튜플 값에 대한 사용자 지정 비교기를 사용하여 사전의 정렬 된 표현을 만드는 방법은 무엇입니까?

  18. 18

    코드에서 DialogField의 값을 할당하는 방법은 무엇입니까?

  19. 19

    Python을 사용하여 JIRA에서 사용자 정의 필드 값을 업데이트하는 방법은 무엇입니까?

  20. 20

    onMeasure 후 사용자 지정 SurfaceView에서 비트 맵을 할당하는 방법은 무엇입니까?

  21. 21

    numpy 배열의 특정 행과 열에 문자열 값을 할당하는 방법은 무엇입니까?

  22. 22

    Chrome의 입력 필드에서 자동 초점을 비활성화하는 방법은 무엇입니까?

  23. 23

    Gnome 3에서 사용자 지정 스크린 샷을 정의하고 키보드 단축키에 할당하는 방법은 무엇입니까?

  24. 24

    값을 직접 할당하는 대신 정적 생성자에서 정적 변수를 초기화하는 이점은 무엇입니까?

  25. 25

    하나의 초기 값으로 mutate에서 lag / lead를 사용하는 방법은 무엇입니까?

  26. 26

    awk에서 정규식을 필드 구분 기호로 사용하는 방법은 무엇입니까?

  27. 27

    다른 열의 값을 기반으로 열에 기본값을 할당하는 방법은 무엇입니까?

  28. 28

    AngularJs의 사용자 지정 필터에 $ scope 값을 전달하는 방법은 무엇입니까?

  29. 29

    Waterline ORM을 사용하여 Sails 모델의 필드에 대한 기본값을 설정하는 방법은 무엇입니까?

뜨겁다태그

보관