728x90
반응형
SMALL
Admin
Django Admin을 이용해서 관리자 사이트에 모델을 등록하고 이후 로그인하여 데이터를 추가할 수 있다. 터미널에서 다음 코드를 입력하여 슈퍼 계정을 생성한다.
python manage.py createsuperuser
그 다음, http://127.0.0.1:8000/admin/에서 앞서 생성한 슈퍼 계정으로 로그인하면 관리자 페이지로 접속 가능하다.
models.py
from django.db import models
from django.contrib.auth.models import User
class Topic(models.Model):
name = models.CharField(max_length = 200)
def __str__(self):
return self.name
class Room(models.Model):
host = models.ForeignKey(User, on_delete = models.SET_NULL, null = True)
topic = models.ForeignKey(Topic, on_delete = models.SET_NULL, null = True)
name = models.CharField(max_length = 200)
description = models.TextField(null = True, blank = True)
# participants =
updated = models.DateTimeField(auto_now = True)
created = models.DateField(auto_now_add = True)
def __str__(self):
return self.name
class Message(models.Model):
user = models.ForeignKey(User, on_delete = models.CASCADE)
room = models.ForeignKey(Room, on_delete = models.CASCADE)
body = models.TextField()
updated = models.DateTimeField(auto_now = True)
created = models.DateField(auto_now_add = True)
def __str__(self):
return self.body[0:50]
views.py
from django.shortcuts import render
from .models import Room
rooms = [
{'id':1, 'name':'Hi'},
{'id':2, 'name':'Welcome!'}
]
def home(request):
rooms = Room.objects.all()
context = {'rooms': rooms}
return render(request, 'base/home.html', context)
def room(request, pk):
room = Room.objects.get(id = pk)
context = {'room': room}
return render(request, 'base/room.html', context)
admin.py
from django.contrib import admin
from .models import Room, Topic, Message
admin.site.register(Room)
admin.site.register(Topic)
admin.site.register(Message)
home.html
{% extends 'main.html' %}
{% block content %}
<h1>Home Template</h1>
<div>
<div>
{% for room in rooms %}
<div>
<span>@{{room.host.username}}</span>
<h5>{{room.id}} -- <a href = "{% url 'room' room.id %}">{{room.name}}</a></h5>
<small>{{room.topic.name}}</small>
<hr>
</div>
{% endfor %}
</div>
</div>
{% endblock content %}
터미널에서 다음을 수행한다.
python manage.py makemigrations
python manage.py migrate
https://developer.mozilla.org/ko/docs/Learn/Server-side/Django/Admin_site
728x90
반응형
LIST
'App Programming > Django' 카테고리의 다른 글
[Django] Search (검색 기능) (0) | 2023.02.17 |
---|---|
[Django] CRUD (0) | 2023.02.17 |
[Django] 템플릿 (Templates) (2) (0) | 2023.02.02 |
[Django] 템플릿 (Templates) (1) (0) | 2023.02.01 |
[Django] URL's / Views (0) | 2023.02.01 |