blog detail working

This commit is contained in:
Sharad Ahlawat 2020-03-08 23:42:03 -07:00
parent a87dd68bc7
commit c78b0261ec
10 changed files with 135 additions and 17 deletions

View File

@ -1,7 +1,4 @@
from django.contrib import admin
# Register your models here.
from .models import Blog
admin.site.register(Blog)

View File

@ -1,11 +1,18 @@
from django.db import models
import datetime
# Create your models here.
class Blog(models.Model):
title = models.CharField(max_length=200)
pubdate = models.DateTimeField()
body = models.TextField(max_length=1000)
image = models.ImageField(upload_to='images/')
def __str__(self):
return self.title
def summary(self):
return self.body[:100]
def pubdate_pretty(self):
return self.pubdate.strftime('%b %e %Y')

View File

@ -0,0 +1,101 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="Mark Otto, Jacob Thornton, and Bootstrap contributors">
<meta name="generator" content="Jekyll v3.8.6">
<title>Album example · Bootstrap</title>
<link rel="canonical" href="https://getbootstrap.com/docs/4.4/examples/album/">
<!-- Bootstrap core CSS -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"
integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
<!-- Favicons -->
<link rel="apple-touch-icon" href="/docs/4.4/assets/img/favicons/apple-touch-icon.png" sizes="180x180">
<link rel="icon" href="/docs/4.4/assets/img/favicons/favicon-32x32.png" sizes="32x32" type="image/png">
<link rel="icon" href="/docs/4.4/assets/img/favicons/favicon-16x16.png" sizes="16x16" type="image/png">
<link rel="manifest" href="/docs/4.4/assets/img/favicons/manifest.json">
<link rel="mask-icon" href="/docs/4.4/assets/img/favicons/safari-pinned-tab.svg" color="#563d7c">
<link rel="icon" href="/docs/4.4/assets/img/favicons/favicon.ico">
<meta name="msapplication-config" content="/docs/4.4/assets/img/favicons/browserconfig.xml">
<meta name="theme-color" content="#563d7c">
<style>
.bd-placeholder-img {
font-size: 1.125rem;
text-anchor: middle;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
@media (min-width: 768px) {
.bd-placeholder-img-lg {
font-size: 3.5rem;
}
}
</style>
<!-- Custom styles for this template -->
<link href="album.css" rel="stylesheet">
</head>
<body>
<header>
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
<a class="navbar-brand" href="#">Portfolio</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup"
aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNavAltMarkup">
<div class="navbar-nav" ml-auto>
<a class="nav-item nav-link" href="#">Twitter</a>
<a class="nav-item nav-link" href="#">Resume</a>
<a class="nav-item nav-link active" href="#">Blog</a>
</div>
</div>
</nav>
</header>
<main role="main">
<div class="container">
<h1 class="text-center pt-3">Sharad's Blog</h1>
<br/>
<br/>
<h2>Latest Posts</h2>
<hr/>
<div>
{% for blog in blogs.all %}
<h3><a href="">{{ blog.title }}</a></h3>
{{ blog.pubdate_pretty }}
<br />
<img class=img-fluid src="{{ blog.image.url }}" height="200" width="200" />
<br />
<p>{{ blog.summary }}</p>
<hr />
{% endfor %}
</div>
</div>
</main>
<footer class="text-muted">
<div class="container text-center">
<p>(c) Sharad Ahlawat {% now "Y" %}</p>
</div>
</footer>
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js"
integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n"
crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"
integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo"
crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"
integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6"
crossorigin="anonymous"></script>
</body>
</html>

View File

@ -0,0 +1 @@
{{ blog.title }}

7
blog/urls.py Normal file
View File

@ -0,0 +1,7 @@
from django.urls import path
from . import views
urlpatterns = [
path('', views.allblogs, name='allblogs'),
path('<int:blog_id>/', views.detail, name='detail'),
]

View File

@ -1,3 +1,12 @@
from django.shortcuts import render
from django.shortcuts import render, get_object_or_404
from .models import Blog
# Create your views here.
def allblogs(request):
blogs = Blog.objects
return render(request, 'blog/allblogs.html', {'blogs': blogs})
def detail(request, blog_id):
blog = get_object_or_404(Blog, pk=blog_id)
return render(request, 'blog/detail.html', {'blog': blog})

View File

@ -1,7 +1,4 @@
from django.contrib import admin
# Register your models here.
from .models import Job
admin.site.register(Job)

View File

@ -1,8 +1,9 @@
from django.db import models
# Create your models here.
class Job(models.Model):
image = models.ImageField(upload_to='images/')
summary = models.CharField(max_length=200)
def __str__(self):
return self.summary

View File

@ -1,10 +1,7 @@
from django.shortcuts import render
from .models import Job
# Create your views here.
def home(request):
jobs = Job.objects
return render(request, 'jobs/home.html', {'jobs': jobs})

View File

@ -14,7 +14,7 @@ Including another URLconf
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path
from django.urls import include, path
from django.conf import settings
from django.conf.urls.static import static
import jobs.views
@ -22,4 +22,5 @@ import jobs.views
urlpatterns = [
path('admin/', admin.site.urls),
path('', jobs.views.home, name='home'),
path('blog/', include('blog.urls')),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)