def handle(self, *args, **options): count = options["reviews"] ignored = 0 # generate reviews for i in range(count): print "generate review %d" % (i + 1) order = random.choice(Order.objects.all()) if not order.orderitem_set.all(): print "ignore order: %d, it has no orderitems" % order.id continue orderitem = random.choice(order.orderitem_set.all()) if Review.objects.filter(orderitem=orderitem).first(): print "ignoring orderitem: %s, it has a review already" % orderitem ignored += 1 continue r = Review() r.orderitem = orderitem r.rating = random.randint(1, 5) r.language = order.table.restaurant.menu.language r.text = random.choice(review_texts) r.user = order.user r.save() self.stdout.write('Successfully added %d reviews' % (count - ignored))
def main(): reviews = json.loads(open("reviews.json", "r").read()) Review.objects.filter(is_crawled=True).delete() total_added = 0 for review in reviews: code = review["course"] course_query = CourseCode.objects.filter(code=code) if course_query.exists(): r = Review() r.course = course_query[0].course r.rating = review["rating"] r.grade = review["grade"] r.text = review["text"].replace("<div>", "").replace("</div>", "") r.is_crawled = True r.created_at = str_to_timestamp(review["created_at"]) r.updated_at = str_to_timestamp(review["updated_at"]) r.author = DEFAULT_USER r.save() total_added += 1 if total_added % 50 == 0: print "Added %s reviews" % total_added