양식을 만들지 않고 장고에서 필요하지 않은 관리 필드를 만들 수 있습니까?


83

Django의 Admin 부분에 새 플레이어를 입력 할 때마다 "This field is required."라는 오류 메시지가 표시됩니다.

사용자 지정 양식을 만들지 않고 필드를 필요하지 않게 만드는 방법이 있습니까? models.py 또는 admin.py 내에서이 작업을 수행 할 수 있습니까?

다음은 models.py에있는 제 클래스의 모습입니다.

class PlayerStat(models.Model):
    player = models.ForeignKey(Player)

    rushing_attempts = models.CharField(
        max_length = 100,
        verbose_name = "Rushing Attempts"
        )
    rushing_yards = models.CharField(
        max_length = 100,
        verbose_name = "Rushing Yards"
        )
    rushing_touchdowns = models.CharField(
        max_length = 100,
        verbose_name = "Rushing Touchdowns"
        )
    passing_attempts = models.CharField(
        max_length = 100,
        verbose_name = "Passing Attempts"
        )

감사


4
가장 간단한 방법은 필드 옵션 blank = True ( docs.djangoproject.com/en/dev/ref/models/fields/#blank )를 사용하는 것입니다. 작동하지 않는 이유가 있습니까?
Platinum Azure

답변:


162

그냥 넣어

blank=True

모델에서 즉 :

rushing_attempts = models.CharField(
        max_length = 100,
        verbose_name = "Rushing Attempts",
        blank=True
        )

"forms"를 사용하는 경우 blank = true는 작동하지 않습니다. 예를 들어 모델의 blank = true는 작동하지 않습니다 : class MusModelForm (forms.ModelForm) : name = forms.CharField (widget = forms.Textarea) # ~ mitglieder = forms.CharField (widget = forms.Textarea) class Meta : 모델 = 음악가
Timo

6

blank = True, null = True 사용

class PlayerStat(models.Model):
    player = models.ForeignKey(Player)

    rushing_attempts = models.CharField(
        max_length = 100,
        verbose_name = "Rushing Attempts",
        blank=True,
        null=True
        )
    rushing_yards = models.CharField(
        max_length = 100,
        verbose_name = "Rushing Yards",
        blank=True,
        null=True
        )
    rushing_touchdowns = models.CharField(
        max_length = 100,
        verbose_name = "Rushing Touchdowns",
        blank=True,
        null=True
        )
    passing_attempts = models.CharField(
        max_length = 100,
        verbose_name = "Passing Attempts",
        blank=True,
        null=True
        )

3
적어도 Django 1.6부터는 CharFields에 "null = True"가 필요하지 않습니다. 유사하게 TextField, SlugField, EmailField, ... 텍스트로 저장되는 모든 것.
jenniwren

Django는 텍스트를 엄격하게 포함하는 필드에 대해 "null = True"를 권장하지 않습니다.
kas

1
@Paullo "CharField 및 TextField와 같은 문자열 기반 필드에 null을 사용하지 마십시오. 문자열 기반 필드에 null = True가 있으면"데이터 없음 "에 대해 두 가지 가능한 값인 NULL 및 빈 문자열이 있음을 의미합니다. 대부분의 경우 "데이터 없음"에 대해 두 가지 가능한 값을 갖는 것은 중복됩니다. Django 규칙은 NULL이 아닌 빈 문자열을 사용하는 것입니다. 한 가지 예외는 CharField에 unique = True 및 blank = True 세트가 모두있는 경우입니다.이 상황에서 공백으로 여러 개체를 저장할 때 고유 제약 조건 위반을 방지하려면 null = True가 필요합니다. 가치. " docs.djangoproject.com/en/2.1/ref/models/fields/#null
Massood Khaari

1
근거가 나에게 설득력이 없지만. :)
Massood Khaari

1
@MassoodKhaari 나는 당신이 의미하는 바를 이해하고 "이론은 설득력이 없다"는 것에 동의합니다.
Paullo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.