[PYTHON] DateTimeField가 관리 시스템에 표시되지 않습니다.
PYTHONDateTimeField가 관리 시스템에 표시되지 않습니다.
어떻게 "날짜"필드가 관리자 시스템에 나타나지 않습니까?
내 admin.py 파일에서
from django.contrib import admin
from glasses.players.models import *
admin.site.register(Rating)
등급 모델에는 다음과 같은 "날짜"라는 필드가 있습니다.
date = models.DateTimeField(editable=True, auto_now_add=True)
그러나 편집 시스템이 True로 설정된 경우에도 관리 시스템에서는 필드가 표시되지 않습니다.
누구 아이디어가 있습니까?
해결법
-
==============================
1.나는 reason을 auto_now_add 필드로 거짓이라고 믿는다.
나는 reason을 auto_now_add 필드로 거짓이라고 믿는다.
이 답변에서 :
또한 문서에서 언급 :
객체가 저장 될 때 현재 날짜로 덮어 쓰게 될 경우 편집 가능한 필드를 가질 이유가 없으므로 이는 의미가 있습니다.
-
==============================
2.admin 패널에서 정말로 날짜를보고 싶다면 admin.py에 readonly_fields를 추가하면됩니다 :
admin 패널에서 정말로 날짜를보고 싶다면 admin.py에 readonly_fields를 추가하면됩니다 :
class RatingAdmin(admin.ModelAdmin): readonly_fields = ('date',) admin.site.register(Rating,RatingAdmin)
지정한 필드는 편집 가능한 필드 다음에 마지막으로 추가됩니다. 순서를 제어하려면 필드 옵션을 사용할 수 있습니다.
추가 정보는 Django 문서에서 얻을 수 있습니다.
-
==============================
3.주요 해킹 :
주요 해킹 :
이 작업을 정말로 수행해야하는 경우 다음과 같이 해당 필드를 "편집 가능"으로 설정하여 즉시 주위를 해킹 할 수 있습니다.
class Point(models.Model): mystamp=models.DateTimeField("When Created",auto_now_add=True) mystamp.editable=True
이렇게하면 필드를 편집 할 수 있으므로 실제로 변경할 수 있습니다. 적어도 mysql 백킹 엔진으로는 잘 동작하는 것으로 보인다. 다른 배킹 스토어가이 데이터를 데이터베이스에 불변으로 만들 것이므로 편집을 시도 할 때 문제가 발생하므로주의해서 사용해야합니다.
-
==============================
4.특정 요구 사항 및 행동 차이의 미묘한 차이에 따라 다음을 수행 할 수 있습니다.
특정 요구 사항 및 행동 차이의 미묘한 차이에 따라 다음을 수행 할 수 있습니다.
from django.utils.timezone import now class MyModel(models.Model): date = models.DateTimeField(default=now)
기본 필드는 다음과 같이 사용할 수 있습니다. https://docs.djangoproject.com/en/dev/ref/models/fields/#default
The default value for the field. This can be a value or a callable object. If callable it will be called every time a new object is created.
이것은 편집 가능을 False로 설정하지 않습니다.
-
==============================
5.auto_now_add가 true 인 것과 관련이있을 수 있습니다. 대신 add에 날짜를 캡처하는 매개 변수 대신 id가 null 인 경우 모델 저장 메서드를 재정 의하여 datetime을 삽입 할 수 있습니다.
auto_now_add가 true 인 것과 관련이있을 수 있습니다. 대신 add에 날짜를 캡처하는 매개 변수 대신 id가 null 인 경우 모델 저장 메서드를 재정 의하여 datetime을 삽입 할 수 있습니다.
class Rating(models.Model): .... def save(self, *args, **kwargs) if not self.id: self.date = datetime.datetime.now()
-
==============================
6.관리자가 입력 한 모델을 클릭했을 때 모든 항목의 목록에 필드가 표시되도록하고 해당 항목을 열 때가 아니라 -
관리자가 입력 한 모델을 클릭했을 때 모든 항목의 목록에 필드가 표시되도록하고 해당 항목을 열 때가 아니라 -
class RatingAdmin(admin.ModelAdmin): list_display = ('name', 'date') admin.site.register(Rating, RatingAdmin)
'이름'은 기본 입력란이나 관리자 패널에 표시하려는 다른 입력란입니다.
이렇게하면보고 싶은 모든 열을 지정할 수 있습니다.
-
==============================
7.당신은 할 수 없어, 문서를 확인
당신은 할 수 없어, 문서를 확인
auto_now 및 auto_now_add는 모두 편집 할 수없는 필드이므로 무시할 수 없습니다.
from https://stackoverflow.com/questions/6386172/datetimefield-doesnt-show-in-admin-system by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] WebDriverException : 메시지 : 'ChromeDriver에 연결할 수 없습니다'. utils.is_connectable (self.port) 오류 : (0) | 2018.11.26 |
---|---|
[PYTHON] 어떻게 파이썬에서 UDP 멀티 캐스트합니까? (0) | 2018.11.26 |
[PYTHON] Pandas 데이터 프레임의 무작위 행 선택 (0) | 2018.11.26 |
[PYTHON] 파이썬의 부분 일치 사전 키 (튜플 중) (0) | 2018.11.26 |
[PYTHON] 프로세스간에 클래스를 공유하려면 어떻게해야합니까? (0) | 2018.11.26 |