결제모델/카트모델/새로 만들 것
결제도 시간 남으면 한번 해봐라
https://developers.nicepay.co.kr/manual-auth.php
HTTP: HyperText Transfer Protocol ➜ 웹 문서를 전달하는 프로토콜
명세: 어떤 약속에 관해 구체적으로 기술한 문서
HTTPMETHOD: 서버의 기본 동작인 CRUD(Create, Read, Update, Delete)과 대응됨
GET : 데이터를 갖고 올 때/프런트에서 서버에 데이터를 읽어서 반환하길 바란다
POST : 데이터 삽입/프런트에서 전송된 데이터를 데이터베이스에 삽입하길 바란다
Restful API
URI에 동사를 사용하지 않고 복수명사 사용
상위개념/하위개념 순으로 작성
세부적인 요청사항은 엔드포인트(url끝단)에서 파라미터를 받아서 처리
✔️참고
django.core.exceptions
https://docs.djangoproject.com/en/3.2/_modules/django/core/exceptions/#ValidationError
The ValidationError exception is raised when data fails form or model field validation. For more information about validation, see Form and Field Validation, Model Field Validation and the Validator Reference.
ValidationErrors that don’t belong to a particular field in a form or model are classified as NON_FIELD_ERRORS. This constant is used as a key in dictionaries that otherwise map fields to their respective list of errors.
Three types of cleaning methods are run during form processing. These are normally executed when you call the is_valid() method on a form.
In general, any cleaning method can raise ValidationError.
If no ValidationError is raised, the method should return the cleaned (normalized) data as a Python object.
raise ValidationError(
_('Invalid value: %(value)s'),
code='invalid',
params={'value': '42'},
)
Validators are functions (or callables) that take a single argument and raise ValidationError on invalid input. Validators are run after the field’s to_python and validate methods have been called.
- The
to_python() method on a Field
is the first step in every validation.
It coerces the value to a correct datatype and raises ValidationError if that is not possible.
ex) FloatField will turn the data into a Python float or raise a ValidationError.- The
validate() method on a Field
handles field-specific validation that is not suitable for a validator.
✔️참고
from django.db import models
from django.core.validators import MinLengthValidator
class Post(models.Model):
content = models.TextField(validators=[MinLengthValidator(10, '10자이상 적어주세요')])
DATETIMEFIELD/DATEFIELD는 editable=False & blank=True
What is the purpose of app_name in app's urls.py or app_namespace in main urls.py?
모델에 기존 DB가 남아있는 상태에서 새로운 필드를 만들어주면 마이그레이션 후, 데이터를 추가했을 때 기존 데이터들은 해당 field가 없기 때문에 에러가 난다. 그래서 field 값이 없을 때 default 값으로 None을(Null) 넣어준다. null=True
on_delete 옵션 (결제, 장바구니 모델 추가할 경우 해당 모델들은 독립적인 게 좋다는 구동엽튜터님의 말 때문에...)
https://vallhalla-edition.tistory.com/60