blog detail working
This commit is contained in:
parent
a87dd68bc7
commit
c78b0261ec
@ -1,7 +1,4 @@
|
||||
from django.contrib import admin
|
||||
|
||||
# Register your models here.
|
||||
|
||||
from .models import Blog
|
||||
|
||||
admin.site.register(Blog)
|
||||
|
@ -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')
|
||||
|
||||
|
101
blog/templates/blog/allblogs.html
Normal file
101
blog/templates/blog/allblogs.html
Normal 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>
|
1
blog/templates/blog/detail.html
Normal file
1
blog/templates/blog/detail.html
Normal file
@ -0,0 +1 @@
|
||||
{{ blog.title }}
|
7
blog/urls.py
Normal file
7
blog/urls.py
Normal 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'),
|
||||
]
|
@ -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})
|
||||
|
@ -1,7 +1,4 @@
|
||||
from django.contrib import admin
|
||||
|
||||
# Register your models here.
|
||||
|
||||
from .models import Job
|
||||
|
||||
admin.site.register(Job)
|
||||
|
@ -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
|
||||
|
@ -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})
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user