티스토리 뷰

models.py

from django.db import models

class Book(models.Model):
    code = models.CharField(max_length=10, primary_key=True)
    name = models.CharField(max_length=100, blank=True, null=True)
    author = models.CharField(max_length=100, blank=True, null=True)
    price = models.IntegerField()
    url = models.URLField('url', unique=True)

    def __str__(self):
        return self.name

 

admin.py

from django.contrib import admin
from .models import Book

class BookAdmin(admin.ModelAdmin):
    list_display = ('code', 'name', 'author', 'price', 'url')

admin.site.register(Book, BookAdmin)

 

urls.py

from django.contrib import admin

from django.conf.urls import re_path
from bookstore.views import *

urlpatterns = [
    # path('admin/', admin.site.urls),
    re_path(r'^admin/', admin.site.urls),

    re_path(r'^bookstore/$', BookListView, name='list'),
    re_path(r'^bookstore/(?P<code>b\d+)/$', BookDetailView, name='detail')
]

 

views.py

from django.shortcuts import render, get_object_or_404
from .models import Book

def BookListView(request):
    books = Book.objects.all()

    return render(request, 'book_list.html', {'books': books})



def BookDetailView(request, code):
    book = get_object_or_404(Book, code=code)

    return render(request, 'book_detail.html', {'book': book})

 

book_list.html

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>BookStore</title>
</head>
<body>

<div>
    <h1>Book List</h1>
    <ul>
        {% for book in books %}
            <li><a href="{% url 'bookstore:detail' book.code %}"> 제목: {{book}}</a><br>저자: {{book.author}}</li>
        {% endfor %}
    </ul>
</div>

</body>
</html>

 

book_detail.html

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>Bookstore</title>
</head>
<body>

<div>
    <h1>{{book}}</h1>
    <h3>{{book.author}}</h3>

    <ul>
        <li> 가격 :  {{book.price}}원</a></li>
        <li> 구매링크 :  <a href= '{{book.url}}'>{{book.url}}</a></li>
    </ul>
</div>

</body>
</html>
댓글