초기설정

hey hey·2021년 12월 7일
0

Django

목록 보기
6/9
post-thumbnail

까먹을까봐 한번더!

$ python -m venv venv
$ source venv/Scripts/activate
$ pip install django
$ pip freeze > requirements.txt
$ django-admin startproject mytodo **.**
$ python manage.py startapp accounts
$ python manage.py startapp todos
* template/base.html
<body>
	<div class="container">
    {% block content %}
    {% endblock content %}
	</div>
<body>
* mytodo/settings

INSTALLED_APPS = [
    'accounts',
    'todos',...]

'DIRS': [BASE_DIR/'templates']

**AUTH_USER_MODEL = 'accounts.User'**
* mytodo/urls.py
urlpatterns = [
    path('admin/', admin.site.urls),
    path('accounts/',include('accounts.urls')),
    path('todos/',include('todos.urls')),
]

accounts/models.py

from django.db import models
from django.contrib.auth.models import **AbstractUser**

class User(AbstractUser):
    pass

accounts/forms.py

from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth import get_user_model

class CustomUserCreationForm(UserCreationForm):
 Meta 클래스에는 model fields 정보 이외의 정보도 들어있다.
 그래서 UserCreationForm이 가지고 있는 Meta class도 같이 상속받을 것
    class Meta(UserCreationForm):
        model = get_user_model()
        
        추가로 fiels 더 넣고 싶다면
        fiels = UserCreationForm.Meta.fields + ('email',)
* todos/models.py
from django.db.models.fields.related import ForeignKey
from django.conf import settings

# Create your models here.

class Todo(models.Model):
    title = models.CharField(max_length=100)
    # 할 일 목록 -> 지금 생성한 할일 목록은 완료 전이다
    completed = models.BooleanField(default=False)
    # Foreignkey(Model,on_delete)
    author = models.ForeignKey(
        settings.AUTH_USER_MODEL,
        on_delete=models.CASCADE)
* todo/views
@login_required
def index(request):
    로그인한 유저의 Todo list 
	  1은 N을 직접 참조할 수 없다
    그래서 manager를 통해서 db api로 접근해야한다.
    나를 참조하고 있는 객체의 이름_set
    todos = request.user.todo_set.all()
    context ={
        'todos':todos
    }
    return render(request,'todo/index.html',context)
profile
FE - devp

0개의 댓글