def create(self, validated_data): validated_data['creator'] = self.context['request'].user validated_data['question'] = Question.objects.get( question_slug=validated_data['question']['question_slug']) answer = Answer(**validated_data) answer.save() return answer
def handle(self, *args, **options): user_id = options['user_id'] question_id = options['question_id'] text = "" for text_i in options['text']: text += str(text_i) + " " name = Answer(user_id=user_id, question_id=question_id, text=text) name.save()
def create(self, validated_data): validated_data['creator'] = self.context['request'].user validated_data['question'] = Question.objects.get( question_slug=validated_data['question']['question_slug']) answer = Answer(**validated_data) answer.save() utilities.telegram_notify( 'New Answer: on {}, \n {}'.format(answer.company.name, '#answer'), answer.id, 'answer', None, answer.body) return answer
def handle(self, *args, **options): count = options['n'] # for answer in Answer.objects.all(): # answer.delete() # for question in Question.objects.all(): # question.delete() for q in Question.objects.all(): q.delete() for r in Rates.objects.all(): r.delete() for i in range(0, count): number = randint(0, len(titles) - 1) question = Question() question.title = titles[number] number = randint(0, len(titles) - 1) question.text = titles[number] User = get_user_model() number = randint(0, User.objects.count() - 1) question.author = User.objects.all()[number] d1 = datetime.strptime('1/1/2014 1:30 PM', '%m/%d/%Y %I:%M %p') d2 = datetime.strptime('1/1/2015 4:50 AM', '%m/%d/%Y %I:%M %p') question.data = random_date(d1, d2) rate = Rates() number = randint(0, User.objects.count()) rate.count = number rate.save() for i in range(number): rate.users.add(User.objects.all()[i]) question.rate = rate number = randint(0, len(tags) - 1) question.save() for i in range(number): question.addTag(tags[i]) for j in range(0, randint(0, 10)): answer = Answer() number = randint(0, len(answers) - 1) answer.text = answers[number] d1 = datetime.strptime('1/1/2014 1:30 PM', '%m/%d/%Y %I:%M %p') d2 = datetime.strptime('1/1/2015 4:50 AM', '%m/%d/%Y %I:%M %p') answer.data = random_date(d1, d2) rate = Rates() rate.count = number rate.save() number = randint(0, User.objects.count()) for i in range(number): rate.users.add(User.objects.all()[i]) answer.rate = rate number = randint(0, len(titles) - 1) answer.title = titles[number] number = randint(0, User.objects.count() - 1) answer.author = User.objects.all()[number] answer.question = question answer.save()
def handle(self, *args, **options): count = options['n'] # for answer in Answer.objects.all(): # answer.delete() # for question in Question.objects.all(): # question.delete() for q in Question.objects.all(): q.delete() for r in Rates.objects.all(): r.delete() for i in range(0, count): number = randint(0,len(titles)-1) question = Question() question.title = titles[ number ] number = randint(0,len(titles)-1) question.text = titles[ number ] User = get_user_model() number = randint(0,User.objects.count()-1) question.author = User.objects.all()[number] d1 = datetime.strptime('1/1/2014 1:30 PM', '%m/%d/%Y %I:%M %p') d2 = datetime.strptime('1/1/2015 4:50 AM', '%m/%d/%Y %I:%M %p') question.data = random_date(d1, d2) rate = Rates() number = randint(0,User.objects.count()) rate.count = number rate.save() for i in range(number): rate.users.add(User.objects.all()[i]) question.rate = rate number = randint(0,len(tags)-1) question.save() for i in range(number): question.addTag(tags[i]) for j in range(0,randint(0,10)): answer = Answer() number = randint(0,len(answers)-1) answer.text = answers[number] d1 = datetime.strptime('1/1/2014 1:30 PM', '%m/%d/%Y %I:%M %p') d2 = datetime.strptime('1/1/2015 4:50 AM', '%m/%d/%Y %I:%M %p') answer.data = random_date(d1, d2) rate = Rates() rate.count = number rate.save() number = randint(0,User.objects.count()) for i in range(number): rate.users.add(User.objects.all()[i]) answer.rate = rate number = randint(0,len(titles)-1) answer.title = titles[ number ] number = randint(0,User.objects.count()-1) answer.author = User.objects.all()[number] answer.question = question answer.save()
def handle(self): for i in range(10): user = User.objects.create_user(username='******' + str(i), password='******' + str(i + 1)) user.save() for i in range(10): profile = Profile(user=User.objects.get(username='******' + str(i)), i, date(2005 + i, i + 1, (i + 1) * 2)) profile.save() tags = [ 'django', 'python', 'shell', 'user', 'android', 'net', 'c', 'java', 'web', 'html' ] for i in tags: tag = Tag(title=i) tag.save() for i in range(10): q = Question( title= "Cannot to set datetime with input field. Always return DateTime.MinValue", text= "My programm are supposed to have date filtr and gives article with proper date. But when i input any date in my datetime field my values don't change and are always DateTime.MinValue. Idk why and how i can fix it.", is_published=True, rating=i, author=Profile.objects.get(id=i + 1), likes=Profile.objects.get(id=(i + 2) // 2), tags=Tag.objects.all()[:i]) for i in range(10): ans = Answer( text="Nice question!", added_at=date(2019, i + 1, (i + 1) * 2), question=Question.objects.get(id=i + 1), author=Profile.objects.get(id=(i + 2) // 2), ) for i in range(10): ans = Answer( text="I don't know!", added_at=date(2019, i + 2, i + 3), question=Question.objects.get(id=(i + 2) // 2), author=Profile.objects.get(id=(i + 3) // 2), )
def generate_answers(posts=None, text_length_limits=(1, 5), answer_per_question_limits=(0, 12), users=None): fake_generator = faker.Faker() if posts is None: posts = list(Question.objects.all()[:]) if users is None: users = list(User.objects.all()[:]) assert len(users) > 0, "Need at least one author to create answers" for i, question in enumerate(posts): n_answers = random.randint(*answer_per_question_limits) for j in range(n_answers): text_length = random.randint(*text_length_limits) text = ' '.join(fake_generator.text() for _ in range(text_length)) post_author = random.choice(users) a = Answer(text=text, question=question, author=post_author) a.save() print(f"[{i+1}/{len(posts)}; {j+1}/{n_answers}] Saved {a} by " f"{post_author} to question #{question.pk}({text_length} " "texts concatenated)")
def get(self, request, id): form = AnswerForm() quest = Question.objects.get(id=id) quest.active_user_vote = quest.active_vote(request.user.id) answers_set = Answer.get_answers(quest, request.user.id) page = request.GET.get('page') paginator = self.get_paginator(answers_set, 30) answers = paginator.get_page(page) return render( request, "question/question.html", { "trends": Trend.get_trends(), "form": form, "question": quest, "answers": answers, })
def post(self, request, id): if request.user.is_authenticated: form = AnswerForm(request.POST) if form.is_valid(): quest_author_email = Answer.add(id, form.cleaned_data, request.user) url, link = make_question_url(id) Mailer.send(quest_author_email, 'new_answer', context={"link": link}) return HttpResponseRedirect(url) else: message = 'Error while adding' return render( request, "question/question.html", { "form": form, "id": id, "message": message, "trends": Trend.get_trends() })
def setUp(self): self.user = Profile.objects.create( user=User.objects.create(username="******") ) self.moderator = Profile.objects.create( user=User.objects.create(username="******") ) self.moderator.user.is_staff = True self.moderator.user.save() self.admin = Profile.objects.create(user=User.objects.create(username="******")) self.admin.user.is_superuser = True self.admin.user.is_staff = True self.admin.user.save() question = Question( title="Test question", owner=self.user, show_username=True, votes=Votes.objects.create(), ) question.save() question.tags.add("test-tag") Answer( text="Test answer", parent=question, owner=self.user, show_username=False, votes=Votes.objects.create(), is_accepted=False, ).save() Comment( text="Test comment", parent_question=question, owner=self.user, show_username=False, votes=Votes.objects.create(), ).save()
def post(self, request, id): if request.user.is_authenticated: form = AnswerForm(request.POST) if form.is_valid(): quest_author_email = Answer.add(id, form.cleaned_data, request.user) url = request.headers["Origin"] + '/question/%s/' % id link = '<a href="{}">{}</a>'.format(url, url) MailSender.send(quest_author_email, 'new_answer', context={"link": link}) return HttpResponseRedirect(url) else: message = 'Error while adding' return render( request, "question/question.html", { "form": form, "id": id, "message": message, "trends": Trend.get_trends() })
def handle(sself, *args, **options): for i in range(10): try: user = User.objects.get(username='******'+str(i)) except User.DoesNotExist: user = User.objects.create_user(username='******' + str(i), password='******' + str(i + 1)) user.is_superuser=False user.is_staff=False user.save() for i in range(10): try: profile = Profile.objects.get(user=User.objects.get(username='******' + str(i))) except Profile.DoesNotExist: profile = Profile(user=User.objects.get(username='******' + str(i)), rating=i, birthday=date(2005 + i, i + 1, (i + 1) * 2)) profile.save() tags = ['django', 'python', 'shell', 'user', 'android', 'net', 'c', 'java', 'web', 'html'] for i in tags: try: tag = Tag.objects.get(title=i) except Tag.DoesNotExist: tag = Tag(title=i) tag.save() for i in range(10): try: q = Question.objects.get(title="Cannot to set datetime with input field. Always return DateTime.MinValue" + str(i), text= str(i) + "My programm are supposed to have date filtr and gives article with proper date. But when i input any date in my datetime field my values don't change and are always DateTime.MinValue. Idk why and how i can fix it.", is_published=True, author=Profile.objects.get(id=i + 1), ) except Question.DoesNotExist: q = Question(title="Cannot to set datetime with input field. Always return DateTime.MinValue" + str(i), text=str(i) +"My programm are supposed to have date filtr and gives article with proper date. But when i input any date in my datetime field my values don't change and are always DateTime.MinValue. Idk why and how i can fix it.", date_published = datetime.now(), is_published=True, rating=i, author=Profile.objects.get(id=i + 1), #likes=likes.set(Profile.objects.get(id=(i + 2)//2)), #tags=Tag.objects.get(id=i+1) ) #q.likes.set(Profile.objects.get(id=(i + 2)//2)) #q.tags.set(Tag.objects.get(id=i+1)) q.save() q.likes.add(Profile.objects.get(id=(i + 2)//2)) q.tags.add(Tag.objects.get(id=i+1)) for i in range(10): try: ans = Answer.objects.get(text="Nice question!", added_at = date(2019, i + 1, (i + 1) * 2), question=Question.objects.get(id=i + 1), author=Profile.objects.get(id=(i + 2)//2), ) except Answer.DoesNotExist: ans = Answer(text="Nice question!", added_at = date(2019, i + 1, (i + 1) * 2), question=Question.objects.get(id=i + 1), author=Profile.objects.get(id=(i + 2)//2), ) ans.save() for i in range(10): try: ans = Answer.objects.get(text="I don't know!", added_at = date(2019, i + 2, i + 3), question=Question.objects.get(id=(i+2)//2), author=Profile.objects.get(id=(i+3)//2), ) except Answer.DoesNotExist: ans = Answer(text="I don't know!", added_at = date(2019, i + 2, i + 3), question=Question.objects.get(id=(i+2)//2), author=Profile.objects.get(id=(i+3)//2), ) ans.save()
def save(self, user, question): answer = Answer(text=self.data['text'], author=user, question=question) answer.save()
with open(path, 'r') as fl: data = fl.read() return data print('Adding questions') questions = ''.join(map(str, range(1, 100))) for ques in questions: q = Question() q.qno = int(ques) try: q.title = read(ques, 'title') q.text = read(ques, 'text') if (ques == '1') or (ques == '2'): q.practice = True q.save() except: print('Could not add Q-', ques) else: try: ans = Answer() ans.question = q ans.infile = File(open(ques + '/inp', 'r')) ans.outfile = File(open(ques + '/out', 'r')) ans.sample_code = File(open(ques + '/sample', 'r')) ans.answer_type = AnswerType.objects.first() ans.save() except: # remove the question too print('Could not add A-', ques) q.delete() print('Deleted Q-', ques)
def handle(self, *args, **options): if options["flush"]: call_command("flush", "--noinput") fake = Faker("hu_HU") users = [] if not User.objects.filter(username="******").exists(): admin = User() admin.username = "******" admin.is_superuser = True admin.is_staff = True admin.first_name = "Admin" admin.last_name = "Adminsson" admin.set_password("admin") admin.save() Profile.objects.create(user=User.objects.get(username="******")) users.append("admin") if not User.objects.filter(username="******").exists(): User.objects.create(username="******", is_staff=True, first_name="Mod", last_name="Mod") Profile.objects.create(user=User.objects.get(username="******")) users.append("mod") if not User.objects.filter(username="******").exists(): User.objects.create(username="******", first_name="User", last_name="User") Profile.objects.create(user=User.objects.get(username="******")) users.append("user") # Accounts for i in range(random.choice(range(3, 9))): # Users fakedata = fake.simple_profile() u = User() u.username = fakedata["username"] name = fakedata["name"].split(" ") u.first_name = name[0] u.last_name = name[1] u.save() # Profiles Profile.objects.create(user=u) users.append(u.username) # Tags tag_choices = [] for t in range(random.choice(range(5, 11))): tag_choices.append(fake.word()) # Questions for i in range(random.choice(range(3, 11))): ov_q = self.generate_owner_votes(users) q = Question() q.title = fake.text(max_nb_chars=50) q.text = fake.paragraph(nb_sentences=4) q.owner = Profile.objects.get(user__username=ov_q["owner"]) q.show_username = bool(random.getrandbits(1)) q.votes = ov_q["votes"] q.created_at = datetime.datetime.now() q.save() for t in random.sample(tag_choices, random.randint(0, len(tag_choices))): q.tags.add(t) # Comments for j in range(random.choice(range(0, 4))): ov_cq = self.generate_owner_votes(users) Comment.objects.create( parent_question=q, text=fake.paragraph(nb_sentences=4), owner=Profile.objects.get(user__username=ov_cq["owner"]), show_username=bool(random.getrandbits(1)), votes=ov_cq["votes"], ) # Answers accepted_answer = -1 answer_count = random.choice(range(0, 6)) has_accepted = bool(random.getrandbits(1)) if has_accepted and answer_count > 0: accepted_answer = random.choice(range(answer_count)) for k in range(answer_count): ov_a = self.generate_owner_votes(users) a = Answer() a.text = fake.paragraph(nb_sentences=4) a.owner = Profile.objects.get(user__username=ov_a["owner"]) a.show_username = bool(random.getrandbits(1)) if k == accepted_answer: a.is_accepted = True else: a.is_accepted = False a.votes = ov_a["votes"] a.parent = q a.save() # Comments to answers for l in range(random.choice(range(0, 4))): ov_ca = self.generate_owner_votes(users) Comment.objects.create( parent_answer=a, text=fake.paragraph(nb_sentences=4), owner=Profile.objects.get( user__username=ov_ca["owner"]), show_username=bool(random.getrandbits(1)), votes=ov_ca["votes"], )
def create_answer(cls, problem): Answer(content="test1", problem=problem, good_count=0).save() answer = Answer.objects.first() return answer
data = fl.read() return data print('Adding questions') questions = ''.join(map(str, range(1, 100))) for ques in questions: q = Question() q.qno = int(ques) try: q.title = read(ques, 'title') q.text = read(ques, 'text') if (ques == '1') or (ques == '2'): q.practice = True q.save() except: print('Could not add Q-', ques) else: try: ans = Answer() ans.question = q ans.infile = File(open(ques + '/inp', 'r')) ans.outfile = File(open(ques + '/out', 'r')) ans.sample_code = File(open(ques + '/sample', 'r')) ans.answer_type = AnswerType.objects.first() ans.save() except: # remove the question too print('Could not add A-', ques) q.delete() print('Deleted Q-', ques)