def handle(self, *args, **options): fake = Factory.create() min_number = int(options['min_number']) max_number = int(options['max_number']) users = User.objects.all()[1:] questions = Question.objects.all() is_correct = (True, False) counter = 1 for q in questions: for i in range(0, randint(min_number, max_number)): ans = Answer() ans.text = fake.paragraph(nb_sentences=randint(2, 4), variable_nb_sentences=True) ans.user = choice(users) ans.question = q ans.rating = randint(0, 1500) ans.is_correct = choice(is_correct) ans.id = counter counter += 1 ans.save() self.stdout.write('in question [%d] add ans [%d]' % (q.id, ans.id))
def fill_db(self): for i in range(0, 30): usr = User(username='******' + str(i), password='******' + str(i), first_name='User') usr.save() prof = Profile(avatar='avatar.jpeg', user=usr) prof.save() try: tbag = Tag.objects.get(name='Bucket' + str(i % 20)) tbag.popularity += 1 except Exception: tbag = Tag(name='Bucket' + str(i % 20), popularity=1) tbag.save() quest = Question(title=str(i) + 'bucket', text='see my bucket, I have a' + str(10000 - i) + ' bucket remains', author=prof, votes=i) quest.save() quest.liked.add(prof) quest.tag.add(tbag) for j in range(0, 20): ans = Answer(text='Test answer' + str(i), author=prof, question=quest) ans.votes = int(((i + j) * 6) % 40) ans.save() ans.voted.add(prof)
def generateAnswers(n): for i in range(n): start = [ "Do ", "Get ", "Leave ", "Remove ", "Press ", "Don't ", "Use ", "EXTERMINATE!!!! ", "Kill ", "Banish ", "Love ", "Hug ", "Complete ", "Do ", "Make ", "Enjoy ", "Start ", "Delete ", "Keep Calm " ] mid = [ "a barrel roll", "your mom", "the configs", "the Force", "the attack", "that RED button", "your wits", "WD-40", "duct tape", "card", "EXTERMINATE!!! ", "some noise", "the show", "and go on" ] end = [ ", Luke.", ", noob!", ", man!", " or you're screwed.", "!", "br@h!", "EXTERMINATE?!" ] + [".", "?", "!"] * 2 ansText = random.choice(start) + random.choice(mid) + random.choice( end) + '(' + str(random.randint(1, 1000000)) + ')' author = UserAccount.objects.all().order_by('?')[0] approved = random.choice([True] + 5 * [False]) question = Question.objects.all().order_by('?')[0] ans = Answer(content=ansText, author=author, approved=approved, question=question) ans.save() if i % 500 == 0: print i
def question(request, question_id): if request.method == "GET": q = get_object_or_404(Question, pk=question_id) a = q.answer_set.all() answer_list = paginator(request, a, 2) form = answerform() return render( request, 'ask/question.html', { 'question': q, 'answer_list': answer_list, 'tags': Tag.objects.besters(), 'question_list': answer_list, 'users': Author.objects.all(), 'form': form, }) if request.method == "POST": q = get_object_or_404(Question, pk=question_id) form = answerform(request.POST) if form.is_valid(): a = Answer(question=q, text=form.cleaned_data['text'], title=form.cleaned_data['title'], author=request.user.author, correct=False, pub_date=timezone.now()) a.save() return HttpResponseRedirect( reverse('ask:question', kwargs={'question_id': question_id}))
def _fill_answer(self): print('FILLING ANSWER MODEL...') for ix in range(500): temp_answer = Answer(question=np.random.choice( Question.objects.all()), text='Answer{}'.format(ix), rating=np.random.normal(scale=20), creation_date=timezone.now(), edit_date=timezone.now(), is_correct=False) temp_answer.save() print('ADDED {} ANSWERS'.format(Answer.objects.count()))
def answer(request): if (request.method == "POST"): form = NewAnswerForm(request.POST) if (form.is_valid): uscontent = request.POST["content"] ususer = User.objects.get(username=request.user.username) usquestionID = int(request.POST["question"]) usquestion = Question.objects.get(id=usquestionID) answ = Answer(content=uscontent, question=usquestion, author=ususer) answ.save() return questionID(request, usquestionID) else: return redirect('/question')
def detail(request,question_id): if request.method == "POST": if not request.user.is_authenticated: return redirect('askCommunity:login') question = Question.objects.get(question_id = question_id) answer = Answer() answer.question_id = question answer.answer = request.POST.get('answer') answer.answered_by = Profile.objects.get(user = request.user) answer.save() else: question = Question.objects.get(question_id = question_id) all_answers = Answer.objects.filter(question_id = question_id) context = {'question' : question, 'answers' : all_answers} return render(request,'detail.html',context = context)
def ajaxAnswer(request): if request.is_ajax(): dataJSON = simplejson.loads(request.raw_post_data) textData = dataJSON["text"] userData = User.objects.get(id=dataJSON["author"]) questionData = Question.objects.get(id=dataJSON["question"]) answ = Answer(content=textData, question=questionData, author=userData) answ.save() notif = Notifications(user=questionData.author, answer=answ, answer_comment=False) notif.save() mailNotify(notif) return HttpResponse("success") else: redirect('/question')
def add_answer(request): try: data = request.POST qid = int(data['qid']) content = data['content'] a = Answer(text=content, author=request.profile, question_id=qid) a.save() ans_html = str(render_to_response('a.html', {'answer': a}).content) post('https://alex-erm.ru/pub?id=' + str(qid), ans_html) return JsonResponse(data={'status': 'OK', 'id': a.id}) except Exception: return JsonResponse(data={ 'status': 'error', 'msg': 'incorrect request' })
def handle(self, *args, **options): fake = Factory.create() min_number = int(options['min_number']) max_number = int(options['max_number']) users = User.objects.all()[1:] questions = Question.objects.all() for q in questions: for i in range(0, randint(min_number, max_number)): ans = Answer() ans.text = fake.paragraph(nb_sentences=randint(2, 10), variable_nb_sentences=True) ans.auth = choice(users) ans.question = q ans.save()
def answer_add(request): ask_id = str(request.META.get('HTTP_REFERER', "/").split('/')[-2]) answer = Answer() # return HttpResponse(ask_id) answer.ask_id = ask_id if request.method == 'POST': af = AnswerForm(request.POST) if af.is_valid(): # 获取表单内容 content = af.cleaned_data['answer'] answer.content = content answer.save() return render_to_response('ask/answer_add_done.html', {'content': content}) else: af = AnswerForm() return render_to_response('ask/answer_add.html', {'af': af})
def setup(): f = Faker() tags = f.words(nb=20) for i in tags: a = Tag(tag=i) a.save() for i in range(100): tt = f.text(50) te = f.text() a = Question(title=tt, text=te, author_id=randint(2, 4)) a.save() a.tags.add(randint(1, 20), randint(1, 20), randint(1, 20)) for i in range(300): te = f.text() an = Answer(text=te, author_id=randint(2, 4), question_id=randint(1, 100)) an.save()
def generate_answers(n): arr = open('/home/hase/technopark/web/AskZaytsev/scripts/text.txt', 'r').read().split(' ') asize = len(arr) ucount = Profile.objects.count() qcount = Question.objects.count() for i in range(0, n): print(i) word_cnt = random.randint(20, 50) text = '' title = arr[random.randint(0, asize - 1)] + ' ' + str(i) own = Profile.objects.filter(id=random.randint(1, ucount))[0] for j in range(0, word_cnt): text += arr[random.randint(0, (asize - 1))] + ' ' q = Question.objects.filter(id=random.randint(1, qcount))[0] a = Answer(owner=own, question=q, title=title, text=text) a.save() print('ans')
def handle(self, *args, **options): User.objects.all().delete() user = User.objects.create_user("nuf", "*****@*****.**", "nuf") user.save() tagmas = [ 'ActionScript', 'Ada', 'Bash', '(Visual) Basic', 'Bourne Shell', 'Bro', 'C', 'C Shell', 'C#', 'C++', 'Curl', 'Fortran', 'Go', 'Haskell', 'Java', 'JavaScript', 'Lisp', 'Maple', 'Mathematica', 'MATLAB', 'MOO', 'Objective-C', 'Pascal', 'Perl', 'PHP', 'Python', 'Ruby', 'Simulink', 'Verilog', 'VHDL' ] Question.objects.all().delete() Tags.objects.all().delete() for i in range(1, 10): q = Question( author=user, text= 'In eget neque in turpis suscipit tristique vitae nec mauris. Vestibulum auctor, turpis non lobortis gravida, nisi est vulputate lectus, ut dictum erat augue ut erat.', title='title' + str(i), question_id=i, ) q.save() t1 = Tags(name=tagmas[(i - 1) * 2]) t2 = Tags(name=tagmas[(i - 1) * 2 + 1]) t1.save() t2.save() t1.question.add(q) t2.question.add(q) for j in range(1, 10): a = Answer( text= 'In eget neque in turpis suscipit tristique vitae nec mauris. Vestibulum auctor, turpis non lobortis gravida, nisi est vulputate lectus, ut dictum erat augue ut erat. In fringilla tincidunt dolor, at pulvinar lacus cursus nec. Pellentesque ultrices eget odio ac ullamcorper. Duis turpis orci, tempor vel massa id, posuere condimentum purus. Sed rutrum magna non nisi posuere interdum. Vivamus eget diam dictum mi malesuada accumsan.', author=user, question=q, ) a.save()
def handle(self, *args, **options): user_range = 25 ask_range = 37 answers_range = 97 f_name = [ 'Red', 'Mad', 'Dummy', 'Crazy', 'Big', 'Black', 'Lonely', 'Shiz', 'Drunken', 'Wicked', 'Brainless', 'Rich', 'Stubborn', 'Stupid', 'Fat', 'Wooden', 'Donald', 'American', 'Dead', 'Lucky', 'Night' ] l_name = [ 'Sailor', 'Rat', 'Man', 'Rabbit', 'Donkey', 'Policeman', 'Child', 'Penguin', 'Joker', 'Lawmaker', 'Judge', 'Iron', 'President', 'Trump', 'Duck', 'Timmy', 'Kartman', 'Kenny', 'Orc', 'Illuminati', 'Band', 'Slave', 'Coffee', 'Aviato', 'Redneck', 'Camper', 'King' ] for i in range(0, user_range): username = u'{0}{1}'.format( f_name[random.randrange(0, len(f_name))], l_name[random.randrange(0, len(l_name))]) email = u'{0}@e-corp.com'.format(username) password = u'{0}123'.format(username) try: User.object.create_user(username=username, email=email, password=password) except: username = u'{0}{1}'.format(username, i) email = u'{0}@e-corp.com'.format(username) User.object.create_user(username=username, email=email, password=password) tags_list = [ 'LOL', 'mad', 'wazzzup', 'DonaldTrump', 'luxury', 'shaurma', 'Skynet', 'TheyAreWatchingYou', 'illuminati', 'Futurama', 'Bender', 'BlackJack', 'TacoBell', 'BreakingBad', ] for tag in tags_list: try: new_tag = Tag() new_tag.title = tag new_tag.save() except: pass f_question = ['How to', 'Why to', 'Can I', 'What if'] l_question = ['fly', 'run', 'jump', 'degrade', 'capture the world'] users = User.object.all() users_count = len(users) tags_list = Tag.objects.all() tags_count = len(tags_list) for i in range(0, ask_range): ask = Ask() random_pk = random.randrange(1, users_count) ask.author = users[random_pk] ask.question = u'{0} {1}'.format( f_question[random.randrange(0, len(f_question))], l_question[random.randrange(0, len(l_question))]) ask.text = u'{0} question by {1}'.format(ask.question, ask.author.username) ask_tags = [] tags_range = random.randrange(1, 4) for i in range(0, tags_range): ask_tags.append(tags_list[random.randrange(0, tags_count)]) ask.rating = random.randrange( -10, 30) # temporary remove later by UserVote ask.save() ask.tags = set(ask_tags) ask.save() asks = Ask.objects.all() asks_count = len(asks) f_answer = ['Just', 'I dont', 'May be', 'You should'] l_answer = ['do it', 'know', 'know', 'forget it'] for i in range(0, answers_range): answer = Answer() random_pk = random.randrange(1, users_count) answer.author = users[random_pk] ask_pk = random.randrange(1, asks_count) answer.ask = asks[ask_pk] answer.text = u'{0} {1}'.format( f_answer[random.randrange(0, len(f_answer))], l_answer[random.randrange(0, len(l_answer))]) answer.save()
def handle(self, *args, **options): # User.objects.all().delete() # Tag.objects.all().delete() # Profile.objects.all().delete() # Question.objects.all().delete() # Answer.objects.all().delete() # Like.objects.all().delete() try: u = User.objects.get(username='******') except: u = User.objects.create(username='******', first_name='test', email='*****@*****.**') u.set_password('test') u.save() p = Profile.objects.create(user_id=u.id, rating=20) item_list = [] for i in range(0, int(options['users'])): u = User(username=randomword(9) + str(i), first_name=randomword(3) + str(i), email=randomword(10) + str(i) + '@aithelle.com') item_list.append(u) if i % 10000 == 0: User.objects.bulk_create(item_list) item_list = [] User.objects.bulk_create(item_list) um = User.objects.aggregate(Min('id'), Max('id')) item_list = [] for i in range(0, int(options['users'])): p = Profile(user_id=um['id__max'] - i, rating=random.randint(0, 20)) item_list.append(p) if i % 10000 == 0: Profile.objects.bulk_create(item_list) item_list = [] Profile.objects.bulk_create(item_list) print 'Users created\n' item_list = [] for i in range(0, int(options['tags'])): t = Tag(text=randomword(5)) item_list.append(t) if i % 10000 == 0: Tag.objects.bulk_create(item_list) item_list = [] Tag.objects.bulk_create(item_list) tm = Tag.objects.aggregate(Min('id'), Max('id')) print 'Tags created\n' for i in range(0, int(options['questions'])): q = Question(author_id=random.randint(um['id__min'], um['id__max']), title=randomword(20), text=randomword(10) + ' ' + randomword(20), rating=random.randint(-100, 100)) q.save() q.tags.add(random.randint(tm['id__min'], tm['id__max']), \ random.randint(tm['id__min'], tm['id__max']), \ random.randint(tm['id__min'], tm['id__max'])) qm = Question.objects.aggregate(Min('id'), Max('id')) print 'Questions created\n' item_list = [] for i in range(0, int(options['answers'])): a = Answer(author_id=random.randint(um['id__min'], um['id__max']), question_id=random.randint(qm['id__min'], qm['id__max']), is_right=random.randint(0, 1), text=randomword(10) + ' ' + randomword(10), rating=random.randint(-100, 100)) item_list.append(a) if i % 10000 == 0: Answer.objects.bulk_create(item_list) item_list = [] Answer.objects.bulk_create(item_list) am = Answer.objects.aggregate(Min('id'), Max('id')) print 'Answers created\n' item_list = [] for i in range(0, int(options['likes'])): item_type = random.choice(['question', 'answer']) if item_type == 'question': item = random.randint(qm['id__min'], qm['id__max']) else: item = random.randint(am['id__min'], am['id__max']) l = Like(author_id=random.randint(um['id__min'], um['id__max']), item_type=item_type, item=item, is_like=random.randint(0, 1)) item_list.append(l) if i % 20000 == 0: Like.objects.bulk_create(item_list) item_list = [] Like.objects.bulk_create(item_list) print 'Likes created\n'