-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsample_data.py
169 lines (154 loc) · 8.83 KB
/
sample_data.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
"""
این اسکریپت برای ایجاد دادههای نمونه در دیتابیس استفاده میشود.
برای اجرا، دستور زیر را در ترمینال وارد کنید:
python manage.py shell < sample_data.py
"""
from django.contrib.auth import get_user_model
from home.models import Post, Comment
from classes.models import Category, Class, Enrollment
from django.utils import timezone
import datetime
User = get_user_model()
# ایجاد کاربر ادمین اگر وجود نداشته باشد
if not User.objects.filter(username='admin').exists():
admin_user = User.objects.create_superuser(
username='admin',
email='[email protected]',
password='adminpass',
first_name='مدیر',
last_name='سیستم'
)
print("کاربر ادمین ایجاد شد.")
else:
admin_user = User.objects.get(username='admin')
print("کاربر ادمین از قبل وجود دارد.")
# ایجاد کاربر عادی
if not User.objects.filter(username='user1').exists():
user1 = User.objects.create_user(
username='user1',
email='[email protected]',
password='user1pass',
first_name='کاربر',
last_name='معمولی'
)
print("کاربر معمولی ایجاد شد.")
else:
user1 = User.objects.get(username='user1')
print("کاربر معمولی از قبل وجود دارد.")
# ایجاد پستهای نمونه
posts_data = [
{
'title': 'معرفی رویداد هکاتون هوش مصنوعی دانشگاه تبریز',
'content': 'انجمن علمی دانشگاه تبریز با افتخار برگزاری اولین هکاتون هوش مصنوعی را اعلام میکند. این رویداد در تاریخ ۱۵ آذر ماه با حضور استادان برجسته و متخصصان حوزه هوش مصنوعی برگزار خواهد شد.\n\nشرکتکنندگان میتوانند در قالب تیمهای ۳ تا ۵ نفره ثبتنام کنند و در حل مسائل واقعی با استفاده از تکنیکهای هوش مصنوعی و یادگیری ماشین به رقابت بپردازند.\n\nبرای ثبتنام و کسب اطلاعات بیشتر به وبسایت رویداد مراجعه کنید.',
'user': admin_user,
'slug': 'hackathon-ai-tabrizu',
},
{
'title': 'کارگاه آموزشی پایتون پیشرفته',
'content': 'انجمن علمی کامپیوتر دانشگاه تبریز برگزار میکند: کارگاه آموزشی پایتون پیشرفته\n\nدر این کارگاه با مباحث پیشرفته برنامهنویسی پایتون از جمله برنامهنویسی شیگرا، مدیریت استثناها، کار با فایلها، ژنراتورها و دکوراتورها آشنا خواهید شد.\n\nاین کارگاه مناسب دانشجویانی است که با مفاهیم اولیه پایتون آشنایی دارند و میخواهند مهارتهای خود را ارتقا دهند.',
'user': admin_user,
'slug': 'advanced-python-workshop',
},
{
'title': 'مسابقه برنامهنویسی ACM دانشگاه تبریز',
'content': 'بزرگترین مسابقه برنامهنویسی دانشگاه تبریز با همکاری انجمن ACM برگزار میشود.\n\nاین مسابقه فرصتی عالی برای محک زدن تواناییهای برنامهنویسی و الگوریتمی شماست. شرکتکنندگان میتوانند به صورت تیمی یا انفرادی در این مسابقه شرکت کنند.\n\nجوایز ارزندهای به نفرات برتر اهدا خواهد شد. آخرین مهلت ثبتنام: ۲۵ آبان ماه',
'user': user1,
'slug': 'acm-programming-contest',
},
]
# افزودن پستها به دیتابیس
for post_data in posts_data:
if not Post.objects.filter(slug=post_data['slug']).exists():
post = Post(
title=post_data['title'],
content=post_data['content'],
user=post_data['user'],
slug=post_data['slug']
)
post.save()
print(f"پست '{post.title}' ایجاد شد.")
else:
print(f"پست با اسلاگ '{post_data['slug']}' از قبل وجود دارد.")
# ایجاد کامنتهای نمونه
if Post.objects.exists():
post = Post.objects.first()
comments_data = [
{
'content': 'ایده بسیار خوبی است. من حتماً در این رویداد شرکت میکنم.',
'user': user1,
},
{
'content': 'لطفاً اطلاعات بیشتری درباره نحوه ثبتنام و مهلت آن ارائه دهید.',
'user': admin_user,
}
]
for comment_data in comments_data:
# بررسی کنیم قبلاً این کامنت را ثبت نکرده باشیم
if not Comment.objects.filter(
post=post,
user=comment_data['user'],
content=comment_data['content']
).exists():
comment = Comment(
post=post,
user=comment_data['user'],
content=comment_data['content']
)
comment.save()
print(f"کامنت توسط {comment.user.username} ایجاد شد.")
else:
print(f"کامنت مشابه از قبل وجود دارد.")
# ایجاد دستهبندی کلاسها
categories_data = ['برنامهنویسی', 'هوش مصنوعی', 'شبکه و امنیت', 'مهارتهای نرم']
for category_name in categories_data:
if not Category.objects.filter(name=category_name).exists():
Category.objects.create(name=category_name)
print(f"دستهبندی '{category_name}' ایجاد شد.")
else:
print(f"دستهبندی '{category_name}' از قبل وجود دارد.")
# ایجاد کلاسهای نمونه
if Category.objects.exists():
programming_category = Category.objects.filter(name='برنامهنویسی').first()
ai_category = Category.objects.filter(name='هوش مصنوعی').first()
classes_data = [
{
'title': 'آموزش پایتون مقدماتی',
'slug': 'python-basics',
'category': programming_category,
'description': 'در این دوره با مفاهیم اولیه برنامهنویسی پایتون آشنا میشوید.',
'instructor': 'دکتر محمدی',
'instructor_bio': 'دکتر محمدی دارای مدرک دکترای هوش مصنوعی و مدرس دانشگاه است.',
'start_date': timezone.now().date() + datetime.timedelta(days=10),
'end_date': timezone.now().date() + datetime.timedelta(days=40),
'schedule': 'یکشنبهها و سهشنبهها، ساعت ۱۵ تا ۱۷',
'location': 'دانشکده مهندسی کامپیوتر، کلاس ۲۰۵',
'capacity': 30,
'price': 0, # رایگان
'status': 'upcoming',
'prerequisites': 'نیاز به دانش قبلی ندارد.'
},
{
'title': 'آشنایی با یادگیری عمیق و شبکههای عصبی',
'slug': 'deep-learning-intro',
'category': ai_category,
'description': 'در این دوره با مفاهیم اولیه یادگیری عمیق و کار با فریمورکهای TensorFlow و PyTorch آشنا میشوید.',
'instructor': 'دکتر احمدی',
'instructor_bio': 'متخصص یادگیری ماشین با سابقه ۱۰ سال تدریس و پژوهش',
'start_date': timezone.now().date() + datetime.timedelta(days=5),
'end_date': timezone.now().date() + datetime.timedelta(days=35),
'schedule': 'شنبهها و دوشنبهها، ساعت ۱۳ تا ۱۵',
'location': 'مجتمع فنی دانشگاه، سالن کنفرانس',
'capacity': 20,
'price': 1500000, # به تومان
'status': 'upcoming',
'prerequisites': 'آشنایی با پایتون و ریاضیات پایه'
}
]
for class_data in classes_data:
if not Class.objects.filter(slug=class_data['slug']).exists():
new_class = Class(**class_data)
new_class.save()
print(f"کلاس '{new_class.title}' ایجاد شد.")
else:
print(f"کلاس با اسلاگ '{class_data['slug']}' از قبل وجود دارد.")
print("دادههای نمونه با موفقیت ایجاد شدند.")