728x90
문제 상황
https://itwithruilan.tistory.com/70
db에 핸드폰 가게에 맞게 리뷰들을 잘 넣었는데!(↑이전 포스팅 참고) 날짜 데이터를 넣어야 하는 상황에 직면했다!
날짜 데이터는 나타내는 형식이 너무 많다. 2022-03-10, 2022/03/10, 2022.03.10 흠 대충 생각해도 세가지는 된다.
때문에 엑셀에 어떻게 날짜 데이터를 입력해야 db에 잘 넣을 수 있을지 고민이었는데 이건 DateTimeWidget으로 해결!ㅎㅎ
아래 공식 문서도 참고!(widget 모음 페이지)
https://django-import-export.readthedocs.io/en/latest/api_widgets.html
DateTimeWidget을 사용해보자!
#models.py
from store.models import Store
class CommunityReview(models.Model):
store = models.ForeignKey(Store, on_delete=models.CASCADE, related_name='commu_review_owner')
content = models.TextField(null=True, blank=True)
rate = models.FloatField(null=True, blank=True)
visit_date = models.DateTimeField(max_length=80, null=True, blank=True)
👉🏻CommunityReview의 model은 다음과 같다. 여기서 visit_date 필드가 DateTimeField이기 때문에 admin.py를 약간 손봐주기로 하자!^^
#admin.py
from django.contrib import admin
from .models import CommunityReview
from store.models import Store
from import_export.admin import ImportExportModelAdmin
from import_export.widgets import ForeignKeyWidget
from import_export import resources, fields
class CommunityReviewResource(resources.ModelResource):
store = fields.Field(
column_name = 'store',
attribute = 'store',
widget = ForeignKeyWidget(Store, 'location')
)
#여기 주목!
visit_date = fields.Field(
column_name = 'visit_date',
attribute = 'visit_date',
widget = DateTimeWidget(),
)
class Meta:
model = CommunityReview
fields = ('id', 'store', 'content', 'rate', 'visit_date',)
export_order = fields
class CommunityReviewAdmin(ImportExportModelAdmin):
fields = ('store', 'content', 'rate', 'visit_date',)
list_display = ('id', 'store', 'content', 'rate', 'visit_date',)
resource_class = CommunityReviewResource
admin.site.register(CommunityReview, CommunityReviewAdmin)
👉🏻visit_date field를 다음과 같이 정의했다!
👉🏻widget에 DateTimeWidget()이라고 지정하면 날짜 데이터로 알맞게 들어간다. 매개 변수로 날짜 형식을 지정할 수 있고 혹은 settings의 DATETIME_INPUT_FORMATS에 형식을 지정할 수 있다. 내 코드처럼 지정하지 않으면 기본적으로 "%Y-%m-%d %H:%M:%S" 이 형식이 쓰인다.
728x90
'그 땐 IT활동했지 > 그 땐 영일영 근무했지' 카테고리의 다른 글
[010/JS Library] chart.js | 기본적인 사용법 (0) | 2022.03.19 |
---|---|
[010/Django] django-import-export | Widget | ManyToManyWidget (0) | 2022.03.14 |
[010/Django] django-import-export | Widget | ForeignKeyWidget (0) | 2022.03.11 |
[010/Django] django-import-export | 기본적인 사용법 (0) | 2022.03.10 |
2021.10.13~ | 40조 통신 시장을 혁신할 핸드폰 버티컬 커머스 플랫폼 영일영 (0) | 2022.03.09 |