add comments
This commit is contained in:
parent
192defed3b
commit
a25a71a7e2
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,8 +1,8 @@
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
from .models import User
|
from .models import User
|
||||||
from .models import AuctionListing
|
from .models import AuctionListing,Comment
|
||||||
|
|
||||||
# Register your models here.
|
# Register your models here.
|
||||||
admin.site.register(User)
|
admin.site.register(User)
|
||||||
admin.site.register(AuctionListing)
|
admin.site.register(AuctionListing)
|
||||||
|
admin.site.register(Comment)
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
# Generated by Django 3.0.8 on 2020-10-18 16:42
|
||||||
|
|
||||||
|
from django.conf import settings
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('auctions', '0003_auctionlisting_date_added'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='Comment',
|
||||||
|
fields=[
|
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('body', models.TextField()),
|
||||||
|
('date_added', models.DateTimeField(auto_now_add=True)),
|
||||||
|
('listing', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='comments', to='auctions.AuctionListing')),
|
||||||
|
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='commited_user', to=settings.AUTH_USER_MODEL)),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
]
|
|
@ -0,0 +1,23 @@
|
||||||
|
# Generated by Django 3.0.8 on 2020-10-18 17:34
|
||||||
|
|
||||||
|
from django.conf import settings
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('auctions', '0004_comment'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='user',
|
||||||
|
name='watchlist',
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='auctionlisting',
|
||||||
|
name='watchlist',
|
||||||
|
field=models.ManyToManyField(blank=True, related_name='watchlist', to=settings.AUTH_USER_MODEL),
|
||||||
|
),
|
||||||
|
]
|
Binary file not shown.
Binary file not shown.
|
@ -2,7 +2,7 @@ from django.contrib.auth.models import AbstractUser
|
||||||
from django.db import models
|
from django.db import models
|
||||||
|
|
||||||
class User(AbstractUser):
|
class User(AbstractUser):
|
||||||
watchlist = models.ManyToManyField('AuctionListing',blank = True,related_name="watchlist")
|
pass
|
||||||
|
|
||||||
class AuctionListing(models.Model):
|
class AuctionListing(models.Model):
|
||||||
title = models.CharField(max_length = 64,primary_key = True)
|
title = models.CharField(max_length = 64,primary_key = True)
|
||||||
|
@ -12,10 +12,17 @@ class AuctionListing(models.Model):
|
||||||
picture = models.URLField(null=True)
|
picture = models.URLField(null=True)
|
||||||
category = models.CharField(max_length = 64)
|
category = models.CharField(max_length = 64)
|
||||||
date_added = models.DateTimeField(auto_now_add=True)
|
date_added = models.DateTimeField(auto_now_add=True)
|
||||||
|
watchlist = models.ManyToManyField(User,blank = True,related_name="watchlist")
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return f"{self.title}: {self.price},{self.desc},{self.picture},{self.category},{self.date_added}"
|
return f"{self.title}: {self.price},{self.desc},{self.picture},{self.category},{self.date_added}"
|
||||||
|
|
||||||
|
|
||||||
|
class Comment(models.Model):
|
||||||
|
listing = models.ForeignKey(AuctionListing,on_delete = models.CASCADE,related_name="comments")
|
||||||
|
user = models.ForeignKey(User,related_name="commited_user",on_delete=models.CASCADE)
|
||||||
|
body = models.TextField()
|
||||||
|
date_added = models.DateTimeField(auto_now_add=True)
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return '%s - %s' % (self.listing.title, self.user)
|
||||||
|
|
|
@ -17,12 +17,14 @@
|
||||||
|
|
||||||
<p class="card-text" style="font-size: large;">
|
<p class="card-text" style="font-size: large;">
|
||||||
<b>bid price</b> : ${{listing.price}}<br>
|
<b>bid price</b> : ${{listing.price}}<br>
|
||||||
<b>created by</b>: {{listing.user}}
|
<b>created by</b>: {{listing.user}}<br>
|
||||||
</p>
|
|
||||||
|
<small><i> created at {{listing.date_added}}</i> </small>
|
||||||
|
</p>
|
||||||
<div class = "text-right">
|
<div class = "text-right">
|
||||||
<form action = "{% url 'index' %}" method="POST">
|
<form action="{% url 'watch' request.user %}" method="POST">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
{{ watch_form }}
|
<button type="submit" name="watch", value="{{listing.title}}", class="btn btn-primary btn-sm">Watch</button>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -14,5 +14,27 @@
|
||||||
<input class="form-control" autofocus type="number" name="bid" placeholder="Bid">
|
<input class="form-control" autofocus type="number" name="bid" placeholder="Bid">
|
||||||
</div>
|
</div>
|
||||||
<input class="btn btn-primary" type="submit" value="Place Bid">
|
<input class="btn btn-primary" type="submit" value="Place Bid">
|
||||||
|
<h4>Comments ...</h4>
|
||||||
|
|
||||||
|
{% if not Listing.comments.all %}
|
||||||
|
No comments Yet....
|
||||||
|
{% else %}
|
||||||
|
{% for comment in Listing.comments.all %}
|
||||||
|
<strong>{{comment.user}} - {{comment.date_added}}</strong>
|
||||||
|
<br/>
|
||||||
|
{{ comment.body }}
|
||||||
|
<br/>
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
|
||||||
|
{% endif %}
|
||||||
|
{% if user.is_authenticated %}
|
||||||
|
<h5>add comment..</h5>
|
||||||
|
<form method="POST">
|
||||||
|
{% csrf_token %}
|
||||||
|
<input class = "form-control" name="comment_body" autofocus type="text" rows=4 cols= 50 placeholder="Comment here!">
|
||||||
|
<input class="btn btn-primary" type="submit" value="Submit">
|
||||||
|
</form>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
|
@ -10,6 +10,7 @@ urlpatterns = [
|
||||||
path("wishlist", views.register, name="wishlist"),
|
path("wishlist", views.register, name="wishlist"),
|
||||||
path("create", views.create, name="create"),
|
path("create", views.create, name="create"),
|
||||||
path("categories", views.category, name="categories"),
|
path("categories", views.category, name="categories"),
|
||||||
path("category/<str:cat_name>",views.category,name="indiv_categories"),
|
path("category/<str:cat_name>",views.category,name="individual_categories"),
|
||||||
path("listing/<str:title>",views.listing,name="listing")
|
path("listing/<str:title>",views.listing,name="listing"),
|
||||||
|
path("watch/<str:user>",views.watch,name="watchlist")
|
||||||
]
|
]
|
||||||
|
|
|
@ -4,12 +4,10 @@ from django.http import HttpResponse, HttpResponseRedirect
|
||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from django import forms
|
from django import forms
|
||||||
from .models import User,AuctionListing
|
from .models import User,AuctionListing,Comment
|
||||||
|
|
||||||
|
|
||||||
categories = ['Fashion','Electronics','Home','Sports','Toys','Automobile','Books','Video Games', 'Other']
|
categories = ['Fashion','Electronics','Home','Sports','Toys','Automobile','Books','Video Games', 'Other']
|
||||||
class Watch_Form(forms.Form):
|
|
||||||
watch_this = forms.BooleanField(required=False)
|
|
||||||
class Bid_Form(forms.Form):
|
class Bid_Form(forms.Form):
|
||||||
bid = 0.0
|
bid = 0.0
|
||||||
def __init__(self,bid_value):
|
def __init__(self,bid_value):
|
||||||
|
@ -20,17 +18,11 @@ class Bid_Form(forms.Form):
|
||||||
|
|
||||||
def index(request):
|
def index(request):
|
||||||
listings = AuctionListing.objects.all()
|
listings = AuctionListing.objects.all()
|
||||||
watch_form = Watch_Form(request.POST)
|
if request.method == "POST":
|
||||||
if watch_form.is_valid():
|
|
||||||
print("asdf")
|
|
||||||
watch = watch_form.cleaned_data["watch_this"]
|
|
||||||
print(watch)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return render(request, "auctions/index.html",{
|
return render(request, "auctions/index.html",{
|
||||||
"Listings":listings,
|
"Listings":listings,
|
||||||
"watch_form": Watch_Form()
|
|
||||||
})
|
})
|
||||||
|
|
||||||
def listing(request,title):
|
def listing(request,title):
|
||||||
|
@ -38,9 +30,15 @@ def listing(request,title):
|
||||||
docstring
|
docstring
|
||||||
"""
|
"""
|
||||||
listings = AuctionListing.objects.get(pk = title)
|
listings = AuctionListing.objects.get(pk = title)
|
||||||
|
if request.method == "POST":
|
||||||
|
body = request.POST["comment_body"]
|
||||||
|
comment = Comment(user=request.user,listing=listings,body = body)
|
||||||
|
comment.save()
|
||||||
|
|
||||||
return render(request,"auctions/listing.html",{
|
return render(request,"auctions/listing.html",{
|
||||||
"Listing": listings
|
"Listing": listings
|
||||||
})
|
})
|
||||||
|
|
||||||
def category(request,cat_name = None):
|
def category(request,cat_name = None):
|
||||||
"""
|
"""
|
||||||
docstring
|
docstring
|
||||||
|
@ -61,6 +59,7 @@ def category(request,cat_name = None):
|
||||||
return render(request,"auctions/category_listing.html",{
|
return render(request,"auctions/category_listing.html",{
|
||||||
"categories": categories
|
"categories": categories
|
||||||
})
|
})
|
||||||
|
|
||||||
def login_view(request):
|
def login_view(request):
|
||||||
if request.method == "POST":
|
if request.method == "POST":
|
||||||
|
|
||||||
|
@ -128,3 +127,6 @@ def create(request):
|
||||||
return render(request,"auctions/create_listing.html",{
|
return render(request,"auctions/create_listing.html",{
|
||||||
"categories":categories
|
"categories":categories
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Binary file not shown.
BIN
db.sqlite3
BIN
db.sqlite3
Binary file not shown.
Loading…
Reference in New Issue