Amer Abdallah

الأعضاء
  • المساهمات

    150
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • Days Won

    1

السُّمعة بالموقع

219 Excellent

1 متابع

  1. أرغب في الاحتفاظ بصفحة في ذاكرة التخزين المؤقت حتى يعلق أحد الأشخاص على إحدى المشاركات. تبدو هذه فكرة رائعة لأن الأشخاص نادرًا ما يعلقون، لذا فإن الاحتفاظ بالصفحات في memcached إلى أن يقوم أحد بعمل تعليق أمرًا رائعًا. لذا فإن الحل الذي أفكر فيه هو: @cache_page( 60 * 15, "blog" ); def blog( request ): # code ... وبعد ذلك سأحتفظ بقائمة بجميع مفاتيح التخزين المؤقت المستخدمة لملف العرض blog وبعد ذلك يكون لدي طريقة لإنهاء مساحة ذاكرة التخزين المؤقت "blog". لكنني أتساءل عما إذا كان هناك طريقة أفضل للقيام بذلك؟
  2. أحاول الحصول على المستخدم الحالي (الذي قام بعمل الطلب request) في داخل نموذجserializers، لقد جربت الكود التالي، ولكنه لا يعمل. class PostSerializer(serializers.ModelSerializer): class Meta: model = Post def save(self): user = self.context['request.user'] كيف يمكنني الوصول إلى request.user من صنف Serializer الخاص بي؟
  3. لدي وسم cache في القالب الرئيسي في مشروع جانغو Django: {% cache 5000 posts %} Content goes here {% endcache %} عندما أقوم بإضافة منشور جديد من خلال لوحة تحكم جانغو Django، أريد إبطال ذاكرة التخزين المؤقت هذه، وبالتالي يظهر المحتوى الأحدث: class PostsAdmin(admin.ModelAdmin): def save_model(self, request, obj, form, change): super(postsAdmin, self).save_model(request, obj, form, change) cache.delete('posts') لكن ذاكرة التخزين المؤقت تبقى صالحة! ويظهر المحتوى القديم أيضًا، ما الخطأ هنا؟ وما هي الطريقة الصحيحة لإبطال التخزين المؤقت في جوء معين؟
  4. لدى جانغو Django العديد من الحقول الرقمية المتاحة للاستخدام في النماذج models. فهل هناك أي طريقة لتقييد حقل معين لتخزين الأرقام فقط ضمن نطاق معين ، على سبيل المثال يمكن للحقل تخزين الأرقام من 0.0 إلى 5.0 فقط؟ كيف يمكن عمل ذلك على حقل من نوع IntegerField في جانغو Django؟
  5. أريد إنشاء نموذج PostModel يحتوي على حقل من نوع ForeignKey يشير إلى المعرف الأساسي id لكائن آخر من نفس النموذج، أي شيء كالتالي على سبيل المثال: class PostModel(models.Model): parent = models.ForeignKey(PostModel) هل يمكن عمل ذلك في قواعد البيانات (أي أن يشير مفتاح أجنبي ForeignKey إلى كائن آخر من نفس النموذج (في نفس الجدول))؟ أم أن هناك طرق أخرى للوصول إلى نفس النتيجة؟ وكيف أقوم بهذا؟
  6. كيف يمكنني تغيير اسم أحد النماذج models من "Post" إلى "Posts" في لوحة التحكم Admin في إصدار 3.2 من جانغو Django؟ ومع ذلك حاولت أن أقوم بتغير إعدادات modeladmin إلا أن إعداد verbose_name_plural داخل النموذج modeladmin لا يفعل شيئًا. ولا أعرف سبب المشكلة؟
  7. أريد أن أكتب اختبار وحدة Unit Test للأمر معين في manage.py والذي يقوم بعملية في جدول في قاعدة البيانات. كيف يمكنني استدعاء هذا الأمر مباشرة من داخل الكود؟ لا أرغب في تنفيذ الأمر على على shell الخاص بنظام التشغيل يدويًا لأنني حينها لن أستطيع استخدام بيئة الاختبار التي تم إعدادها باستخدام manage.py test. لذلك أريد أن أعرف كيف يمكنني استدعاء أمر manage.py مخصص مباشرةً من داخل ملف اختبار test؟
  8. لدي نموذج يمثل المنشورات التي أقدمها على موقعي. وأود أن أعرض بعضًا من العشوائية. لكنني أواجهة مشكلة في الحصول على سجل record عشوائي من قاعدة البيانات. حاول أن أكتب الكود التالي: number_of_records = Post.objects.count() random_index = int( random.random() * number_of_records ) + 1 random_post = Post.get(pk = random_index) لا يبدو أن من الصحيح حساب عدد كل الصفوف للحصول على سجدل عشوائي. هل توجد أي خيارات أخرى كيف تمكنني من القيام بذلك؟
  9. أحاول إنشاء عمليات ترحيل migrations داخل تطبيق جانغو Django موجود باستخدام الأمر makemigrations ولكنه يظهر الرسالة No changes detected عادةً ما أقوم بإنشاء تطبيقات جديدة في المشروع باستخدام الأمر startapp ولكني لم أستخدمه لهذا التطبيق عندما قمت بإنشائه. بعد محاولة أكتشاف الأخطاء، اكتشفت أنه لا يتم إنشاء ملفات ترحيل البيانات migrations لأن المجلد migrations غير موجود في أحد التطبيقات. هل سيكون من الأفضل إنشاء المجلد إذا لم يكن موجودًا أم سوف يسبب خطأ بعد ذلك أو يؤدي لمشكلة في قاعدة البيانات؟
  10. لقد قمت بتغيير اسم التطبيق في جانغو Django عن طريق إعادة تسمية المجلد وجمل الإستدعاء imports وجميع (القوالب templates / الفهارس indexes). لكني الآن أحصل على هذا الخطأ عندما أحاول تشغيل المشروع عن طريق الأمر التالي: python manager.py runserver الخطأ الذي يظهر كالتالي: Error: Could not import settings 'appname.settings' (Is it on sys.path?): No module named settings كيف يمكنني تصحيح هذا الخطأ وحلّه؟ أو كيف يمكنني إعادة تسميه مشروع جانغو Django؟
  11. أحاول أن أقوم بإرسال رسالة إلى البريد الإلكتروني، لذلك قمت ببعض التعديلات في ملف settings.py الخاص بي: EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = 'localhost' EMAIL_PORT = 1025 EMAIL_HOST_USER = '' EMAIL_HOST_PASSWORD = '' EMAIL_USE_TLS = False وكود إرسال البريد الإلكتروني الذي لدي كالتالي: from django.core.mail import EmailMessage email = EmailMessage('my title', 'Hello, World!', to=['example@gmail.com']) email.send() بالطبع ، إذا قمت بإعداد خادم تصحيح أخطاء debugging server من خلال الأمر التالي، فيمكنني رؤية البريد الإلكتروني في الـ terminal: python -m smtpd -n -c DebuggingServer localhost: 1025 لكن كيف يمكنني إرسال البريد الإلكتروني ليس إلى خادم التصحيح ولكن إلى example@gmail.com، أي كيف يمكنني إرسال رسالة حقيقية إلى بريد إلكتروني حقيقي؟
  12. أنا أستخدم django-rest-framework-simplejwt لتسجيل المستخدم، ومن خلال كود التالي يمكنني الحصول على refresh token و access token بدون مشكلة: class RegistrationSerializer(serializers.ModelSerializer): pwd = serializers.CharField(write_only=True) tokens = serializers.SerializerMethodField() class Meta: model = UserProfile fields = ['username', 'mail', 'pwd', 'tokens'] def get_tokens(self, user): user = UserProfile( mail=self.validated_data['mail'], username=self.validated_data['username'] ) pwd = self.validated_data['pwd'] user.set_password(pwd) tokens = RefreshToken.for_user(user) refresh = text_type(tokens) access = text_type(tokens.access_token) data = { "refresh": refresh, "access": access } return data def save(self): user = UserProfile( mail=self.validated_data['mail'], username=self.validated_data['username'] ) pwd = self.validated_data['pwd'] user.set_password(pwd) user.save() return user المشكلة هي أنه في كل مرة أقوم فيها بإنشاء مستخدم ، يمكنني الحصول على كل من refresh token و access token ، ولكن في قاعدة البيانات لا يمكنني العثور على هذه الرموز tokens. لذا أعتقد أنني لم أقم بتخزينها ، فهل يجب علي تخزين هذه الرموز في قاعدة البيانات؟ وكيف أقوم بذلك؟
  13. في الطبيعي يكون رد مصادقة simpleJWT من جانغو Django مشابه للتالي: { "refresh":"" "access": "" } كيف يمكنني أن أعدل على الرد السابق لكي أضيف خصائص آخرى مثل: { "username": "", "detail": "", "accessToken": "", "refreshToken": "" }
  14. أحاول البحث عن كائنات من نموذج User من خلال قيمة الحقل DateTimeField. من خلال الكود التالي: User.objects.filter(datetime_registred=datetime.date(2021,9,12)) أحصل على كائن queryset فارغ، أعتقد لأنني لم أحدد وقت في عملية البحث، حيث وضعت تاريخ فقط، لكنني أريد أي وقت خلال اليوم المحدد. أي أني أريد تحديد كل المستخدمين الذين سجلوا خلال هذا اليوم هل هناك طريقة سهلة في Django للقيام بذلك؟
  15. أحاول إنشاء قالب template لعرض قيم حقول نموذج المحدد ، إلى جانب أسماء الحقول. على سبيل المثال، لنفترض أن لدي النموذج التالي: class User(Model): name = CharField(max_length=150) email = EmailField(max_length=100, verbose_name="E-mail") أرغب في إخراج البيانات السابقة في قالب معين لتكون النتيجة كالتالي: name My Full Name E-mail mail@example.com لذلك أحاول أن أقوم بعمل القالب بالشكل التالي: <table> {% for field in fields %} <tr> <td>{{ field.name }}</td> <td>{{ field.value }}</td> </tr> {% endfor %} </table> بالطبع الكود السابق لن يعمل، ولكن هذا ما أحاول أن أقوم به، هل هناك طريقة يوفرها جانغو Django للقيام بذلك؟