Skip to content

Commit ce79d3c

Browse files
committed
fixed a bug in the save method of Question and Answer models
1 parent 298cba8 commit ce79d3c

File tree

6 files changed

+48
-10
lines changed

6 files changed

+48
-10
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Generated by Django 3.1.1 on 2021-05-22 11:56
2+
3+
from django.conf import settings
4+
from django.db import migrations, models
5+
6+
7+
class Migration(migrations.Migration):
8+
9+
dependencies = [
10+
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
11+
('main', '0010_answerreport_questionreport'),
12+
]
13+
14+
operations = [
15+
migrations.AlterField(
16+
model_name='answerreport',
17+
name='reporter',
18+
field=models.ManyToManyField(blank=True, to=settings.AUTH_USER_MODEL),
19+
),
20+
migrations.AlterField(
21+
model_name='questionreport',
22+
name='reporter',
23+
field=models.ManyToManyField(blank=True, to=settings.AUTH_USER_MODEL),
24+
),
25+
]

main/models.py

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,16 @@ class Question(models.Model):
2121
def __str__(self) -> str:
2222
return self.title[:60]
2323

24+
def save_model(self, first_time=True):
25+
return super(Question, self).save()
26+
2427
def save(self, *args, **kwargs):
25-
super().save(*args, **kwargs)
26-
QuestionVote.objects.create(question=self)
27-
QuestionReport.objects.create(question=self)
28+
if self.id:
29+
super(Question, self).save(*args, **kwargs)
30+
else:
31+
super().save(*args, **kwargs)
32+
QuestionVote.objects.create(question=self)
33+
QuestionReport.objects.create(question=self)
2834

2935

3036
class Answer(models.Model):
@@ -46,9 +52,15 @@ def __str__(self) -> str:
4652
return self.content[:60]
4753

4854
def save(self, *args, **kwargs):
49-
super().save(*args, **kwargs)
50-
AnswerVote.objects.create(answer=self)
51-
AnswerReport.objects.create(answer=self)
55+
if self.id:
56+
super(Answer, self).save(*args, **kwargs)
57+
else:
58+
super(Answer, self).save(*args, **kwargs)
59+
AnswerVote.objects.create(answer=self)
60+
AnswerReport.objects.create(answer=self)
61+
62+
def save_model(self, first_time=True):
63+
return super(Question, self).save()
5264

5365

5466
class QuestionVote(models.Model):
@@ -127,7 +139,7 @@ class Report(models.Model):
127139

128140
# who has flagged this question
129141
reporter = models.ManyToManyField(
130-
settings.AUTH_USER_MODEL, null=True, blank=True)
142+
settings.AUTH_USER_MODEL, blank=True)
131143

132144
# required so that django doesn't create table for this class
133145
class Meta:

main/templates/main/all_questions.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ <h2 class="welcome_header">All Questions</h2>
1212

1313
<div class="questions_container">
1414
{% for question in page_obj %}
15-
<div class="question">
15+
<div class="question bg-white">
1616
<div class="question__votes_container">
1717
<div class="question__votes">
1818
<div class="question__votes--number">{{ question.questionvote.votes }}</div>

main/templates/main/home.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ <h2 class="welcome_header__text">Explore Answerly</h2>
1717

1818
<div class="questions_container">
1919
{% for question in question_list %}
20-
<div class="question">
20+
<div class="question bg-white">
2121
<div class="question__votes_container">
2222
<div class="question__votes">
2323
<div class="question__votes--number">{{ question.questionvote.votes }}</div>

main/templates/main/navbar.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
<div class="collapse navbar-collapse" id="navbarToggle">
1919
<div class="navbar-nav mr-auto">
2020
<a class="nav-item nav-link" href="{% url 'main:home' %}">Home</a>
21+
<a class="nav-item nav-link" href="{% url 'main:all_questions' %}">All Questions</a>
2122
</div>
2223
<!-- Navbar Right Side -->
2324
<div class="navbar-nav">

main/views.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ def home(request):
2020
def all_questions(request):
2121
question_list = Question.objects.order_by('-created_at')
2222

23-
paginator = Paginator(question_list, 15)
23+
paginator = Paginator(question_list, 2)
2424
page_number = request.GET.get('page')
2525
page_obj = paginator.get_page(page_number)
2626

0 commit comments

Comments
 (0)