لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 09/15/21 في كل الموقع
-
أرغب في ربط نصوص في وسم قالب جانغو Django ، كالتالي: {% extend posts/myVar/base.html %} هنا myVar هو متغير خاص بي وأريد ربطه ببقية المسار، فعلى سبيل المثال، إن كان المتغير myVar يساوي example.com فتكون النتيجة كالتالي: posts/example.com/base.html2 نقاط
-
أحاول حفظ كائن في قاعدة البيانات الخاصة بي، لكن يظهر خطأ من نوع MultiValueDictKeyError. تكمن المشاكل في النموذج ، عندما يتم تحديد حقل من نوع checkbox (وضع علامة صح عليه) في نموذج form ويسمى الحقل is_published. المشكلة تحدث إذا لم يتم تحديد خانة الاختيار ، فمن الواضح أنه لا يتم تمرير أي شيء إذا لم يتم تحديد هذا الحقل. ويظهر أن الخطأ يحدث بسبب السطر التالي: is_published = request.POST['is_published'] كيف أتعامل بشكل صحيح مع هذا الاستثناء وأقوم بتصحيحه؟2 نقاط
-
أحاول أن اقوم بتغيير حجم الايقونات بصيغة svg ولكن ﻻ يحدث اى تغيير رغم تاكدي من جلب ملف الcss وعمل !important للخاصية2 نقاط
-
احاول ان اطبق الkeyframes على الشاشات بالاحجام المختلفة كل حجم له انيميشن خاص به ,كيف يمكن تحقيق ذلك2 نقاط
-
2 نقاط
-
السلام عليكم : أريد أن أصبح مبرمج لتطبيقات الجوال أندرويد خصوصاً وأيضاً الآيفون (إذا كانوا متوفرين مع بعض) أهم شيء عندي الأندرويد وأيضاً أريد أخذ دورة تطبيقات الويب (إذا كانوا جميعهم متوفرين في دورة واحدة) >>> ماهي الدورة التي أخذها تحديداً ؟ إحترت بين الدورات والفرق بينها ؟ ومامعنى مطور أو مطور برمجيات ؟ وما الفرق بينه وبين المبرمج ؟ هل جميعهم يبرمجون ؟ أم فقط المبرمج يكتب كود والمطور يصمم ؟ أريد برمجة تطبيقات الأندرويد أكثر من باقي المجلات ، أيش أدخل بالأكاديمية ؟ وأريد معرفة الفروقات بين الدورات ؟ وللي أخذوها رأيكم بالشرح وهل هو ممل أو ممتع ؟ وهل تعلم البرمجة من الصفر أم إحدى لغات البرمجة فقط ؟1 نقطة
-
1 نقطة
-
سلام عليكم المثال واضح عندي قائمة بها fruits و animals و birds و cars و جنب كل واحدة منهم قائمة فرعية ترجع النتائج حسب قيمة id القائمة الاولى الان انا مكرر القوائم دي مثلا 4 مرات ازاي اخلي كل قائمة من دول تاخد من القائمة اللي جنبها بس من غير كل القوائم ما تتغير يعني اول وحدة اخترت fruits و من اللي جنبها اخترت banana مثلا من التانية اخترت animals ، لما باجي بقا بحدد الاختيار ده القائمة الفرعية الاولى بتتغير انا عاوز كل قائمة فرعية تاخد بيانات القائمة اللي جنبها بس حاولت كتييييييييييييير ف الحوار ده مش ظابط الكود <html dir="rtl" lang="ar"> <head> <title>تجربة</title> <script src="//code.jquery.com/jquery-1.10.2.js"></script> <!-- Jquery Library --> </head> <body> <div class="container"> <select name="select1" class="select1"> <option value="1">Fruit</option> <option value="2">Animal</option> <option value="3">Bird</option> <option value="4">Car</option> </select> <select name="select2" class="select2" id="select2"> <option value="1">Banana</option> <option value="1">Apple</option> <option value="1">Orange</option> <option value="2">Wolf</option> <option value="2">Fox</option> <option value="2">Bear</option> <option value="3">Eagle</option> <option value="3">Hawk</option> <option value="4">BWM<option> </select> </div> <div class="container"> <select name="select1" class="select1"> <option value="1">Fruit</option> <option value="2">Animal</option> <option value="3">Bird</option> <option value="4">Car</option> </select> <select name="select2" class="select2" id="select2"> <option value="1">Banana</option> <option value="1">Apple</option> <option value="1">Orange</option> <option value="2">Wolf</option> <option value="2">Fox</option> <option value="2">Bear</option> <option value="3">Eagle</option> <option value="3">Hawk</option> <option value="4">BWM<option> </select> </div> <div class="container"> <select name="select1" class="select1"> <option value="1">Fruit</option> <option value="2">Animal</option> <option value="3">Bird</option> <option value="4">Car</option> </select> <select name="select2" class="select2" id="select2"> <option value="1">Banana</option> <option value="1">Apple</option> <option value="1">Orange</option> <option value="2">Wolf</option> <option value="2">Fox</option> <option value="2">Bear</option> <option value="3">Eagle</option> <option value="3">Hawk</option> <option value="4">BWM<option> </select> </div> </body> </html> <script> $(".select1").change(function() { if ($(this).data('options') === undefined) { /*Taking an array of all options-2 and kind of embedding it on the select1*/ $(this).data('options', $('.select2 option').clone()); } var id = $(this).val(); var options = $(this).data('options').filter('[value=' + id + ']'); $('.select2').html(options); }); </script> انتظر تعليماتكم1 نقطة
-
قمت ببناء شبكة عصبية وقمت بتهيئة ال GradientDescentOptimizer بالشكل التالي: initialize = tf.initialize_all_variables() mysess = tf.Session() mysess.run(initialize) m= tf.reduce_mean(tf.square(y - yh)) train_step = tf.train.GradientDescentOptimizer(0.4).minimize(m) كيف يمكنني الآن ضبط معددل تعلم تكيفي له؟1 نقطة
-
يحدث هذا الخطأ لأن المتصفح لا يقوم بإرسال حقل checkbox إن لم تكن محددًا، وبالتالي لا يوجد مفتاح باسم is_published في القاموس request.POST، لذلك يمكنك أن تستخدم التابع get الموجود في أي قاموس dictionary والذي يسمح لك يتمرير قيمة إفتراضية في حالة عدم وجود المفتاح في القاموس، كالتالي: is_published = request.POST.get('is_published', False) أو يمكنك عمل ذلك من خلال جملة if .. else، على النحو التالي: if 'is_published' in request.POST: is_published = request.POST['is_published'] else: is_published = False ويمكن إختصار الكود السابق في سطر واحد، كالتالي: is_published = 'is_published' in request.POST and request.POST['is_published'] كما يمكنك أن تستخدم جملة try ... except: from django.utils.datastructures import MultiValueDictKeyError try: is_published = request.POST['is_published'] except MultiValueDictKeyError: # في حالة لم يوجد المفتاح is_published is_published = False1 نقطة
-
مرحبا لو سمحتو انا حابب قدم على دورة واجهة المستخدم و حابب أعرف هل انا ملزم بوقت حتى انهي هذي الدورة و اعمل الامتحان او معي مدة يلي بدي ياها و كمان حابب اعرف من الناس يلي خلصو الدورة هل حسيتو بتحسن و لقيتو شغل و تحسن وضعكن المعيشي و اديش ممكن طلع بالمشروع الواحد لو سمحتو جاوبوني ضروري لأن متردد إذا بتسجل او لا1 نقطة
-
معرض أعمالك والمشاريع التي تقوم بها هي من تحدد مستواك، بالنسبة لمشاريع الدورة ستقوم انت بكتابتهم مع المدرب و بمساعدة ومتابعة من المدربين، ومن ثم بالتأكيد ستكون فاهم لكل أجزائهم، ولذلك يمكنك وضعهم في معرض اعمالك. قبل وبعد التخرج، ايضا قم بعمل بعض الصفحات او القوالب مما تعلمت للتدرب. هل من يعملون على مستقل جميعهم خريجين جامعيين او من أكاديكية حسوب؟ كلا، الشهادة مفيدة لأن بها امتحان وتاكد من فهمك للمحتوى، ومعرض اعكالك يعكس مهاراتك و كيفية استفادتك من المعرفة وتطبيقها بمشاريع حقيقية.. لا تستعجل الدراسة فهي عمىية تراكمية و تحتاج لخبرة تكتسبها مع حل المشكلات التي تعترضك.1 نقطة
-
إذا قمت بإستلام المشروع و بعد 30 يوما طالبت بإرجاع المال فهل سترجعه لي الإدراة مع العلم أن المستقل قد سحب المال من الموقع. وما هي الحلول التي ستقدمها لي الإدارة1 نقطة
-
مرحباً عبد الرحمن، بالنسبة للجزء الأول، أنت غير ملزم بوقت معين لحضور الدورة أو اجتياز الامتحان، يمكنك مشاهدة الدورة حسب تفرغك وبطريقة الدراسة التي تناسبك. الفترة التي لديك مدة محددة فيها، وهب بعد طلب عمل الامتحان، سيطلب منك المدرب عمل مشروع كاختبار لك، وهنا لديك مدة زمنية معينة لإنجازه. بالنسبة لتحقيق دخل ومردود مادي: تلتزم أكاديمية حسوب بإعادة قيمة الدورة وحتى بعد ستة أشهر من اجتياز الامتحان والحصول على شهادة إن لم تجد عملاً خلال هذه المدة وقمت بتحقيق دخل مادي يرد عليك ثمن قيمة الدورة. وهذا لأن الأكاديمية ليها ثقة كاملة بالمحتوى ومدى إفادته. وعلى كل حال عند الدراسة عليك تحقيق كل التركيز والمتابعة و التدرب على كتابة الأكواد ومن ثم الاعتماد على نفسك في حل المشاكل البرمجية قبل طلب مساعدة المدربين لتتمرن على كيفية حل المشاكل، وليس البرمجة.. إن قيمة المشروع تتباين بين مطور وآخر ومن صاحب مشروع لآخر وليس هنالك رقم تقريبي، يمكنك تصفح مشاريع على مستقل و خمسات وتقدير قيمة تقريبية لمشاريع تصميم واجهات المواقع و طلبات التعديل وماشابه.. وبعد اجتياز الامتحان، سيتم إضافة شارة "خريج أكاديمية حسوب" لحسابك في مستقل المرتبط بحساب الدورة. يمكنك الانسحاب من الدورة في أي وقت. فقط تواصل مع مركز مساعدة حسوب يمكنك تصفح: ميزات دورات الأكاديمية1 نقطة
-
مرحبا انا عبدالرحمن بدي قدم على دورة واجهة المستخدم بس بدي اعرف انو في حال ما طلعت المبلغ بعد ست شهور حيرجع كل المبلغ يلي دفعتو للدورة او اذا في شروط يا ريت تحكولي ياها و كمان اذا طلعت جزء منو شو بيصير بيرجعو القسم الباقي او لا ؟؟1 نقطة
-
تضمن لك أكاديمية حسوب بإسترداد استثمارك خلال 6 أشهر، وأنا أقتبس هنا من مركز المساعدة الخاص بالأكاديمية: كما يمكنك التواصل مع فريق الدعم الفني للحصول على المساعدة أو الاستفسار بشكل أكبر من خلال هذا الرابط (مركز مساعدة أكاديمية حسوب).1 نقطة
-
ذلك لأن القيمة flex مثلها مثل block و inline و inline-block، تقوم بالتأثير على العناصر بشكل معين، فعلى سبيل المثال، الخاصية display: block تجعل العناصر تترتب أسفل بعضهم البعض، بينما الخاصية inline تجعل العناصر بجانب بعضهم البعض لكن لا يمكنك أن تحدد طول height للعناصر، بينما القيمة inline-block تجعل العناصر بجانب بعضهم البعض ويمكنك أن تحدد طول height ... إلخ. وكذلك القيمة flex تجعل العنصر ينكمش على محتوياته بشكل إفتراضي وتجعل المحتويات (العناصر الأبناء بجانب بعضهم البعض)، وبالطبع يمكن تغير هذا الأمر من خلال بعض خصائص flexbox مثل الخاصية flex أو الخاصية flex-direction. يمكنك معرفة المزيد عن خصائص Flexbox في CSS من خلال هذه المقالات:1 نقطة
-
السلام عليكم. أردت التدرب على CSS و HTML بتقليد هذا الموقع : https://preview.themeforest.net/item/metronic-responsive-admin-dashboard-template/full_screen_preview/4021469?_ga=2.205122643.2125731033.1631657300-1635609146.1627104878 و قد أنهيت الهيدر -أو جزءا كبيرا منه-, فأريد قبل أن أستمر أن أعرف إن كنت قد إرتكبت أخطاءا ما في الكود الذي كتبته -أقصد بالأخطاء هنا, الأخطاء المنطقية, أي مثلا إستعمال عنصر أو خاصية ما في غير موضعها-, و أيضا أريد أن أعرف إن كان هناك تحسينات ما لأفعلها. هذا رابط الصفحة للمعاينة: https://mostafa-100.github.io/Metronic-Template_ThemeForest/ و هذا رابط الأكواد: https://github.com/Mostafa-100/Metronic-Template_ThemeForest و شكرا.1 نقطة
-
أنا أعمل في مشروع جانغو Django حيث أحتاج إلى إنشاء نموذج form للمدخلات. حاولت استيراد reverse من django.core.urlresolvers. لكن ظهر لي هذا الخطأ: line 2, in from django.core.urlresolvers import reverse ImportError: No module named 'django.core.urlresolvers' أنا أستخدم Python 3.5.2 و Django 2.0 و MySQL.1 نقطة
-
الخطأ يظهر نتيجة الإصدار الذي تستخدمه من django والذي غالبا يكون أحدث من الاصدار 2.0 حيث تم تعديل اسم المكتبة في الاصدارات الحديثة، ، والحل الأبسط هو : أن تقوم بتغيير الإستدعاء القديم لديك من from django.core.urlresolvers import reverse الى from django.urls import reverse اذا كان المشروع كبيرا يمكنك تغيير كل الاستدعاءات بسهوله باستخدام find and replace كما هو موضح بالصورة:1 نقطة
-
ارغب تعلم الدورات التالية وارغب معرفة ترتيب هذه الدورات ومن اي دورة ابدا ثم التي تليها. دورة علوم الحاسوب تطوير واجهات المستخدم Html, css, </> تطوير التطبيقات باستخدام لغة JavaScript تطوير تطبيقات الويب باستخدام لغة PHP PHP, My SQL1 نقطة
-
يعتمد الترتيب بشكل أساسي على رغبتك حسب المجال الذي تريده، ولوأخذناها بالترتيب السليم بانه يمكن أن يكون كالتالي: دورة علوم الحاسوب: وفي تلك الدورة تعرف أكثر عن الحاسوب نفسه، مكوناته وأنظمه التشغيل وكل الأساسيات في عالم البرمجة، وهي المقدمة المناسبة لأي دورة تعليمية خاصة بالبرمجة. دورة تطوير واجهات المستخدم: لان هذة هي المدخل المناسب والأساسي لبدء برمجة المواقع وواجهات تطبياقت الهواتف كذلك، وهي البناء الأولي لأي موقع وبه كذلك شرح لمدخل تطوير مواقع الويب. دورة تطوير التطبيقات باستخدام لغة JavaScript: حيث انها اللغة التي تعطي الموقع الحيوية والحركة، وتأتي دائما بعدما نقوم بتأسيس الموقع باستخدام HTML و CSS ويمكنك استخدامها سواء في تطوير المواقع وكذلك تبيقات الهاتف وأشياء أخرى كثيرة. لكن في بعض الأحيان يمكن الأستغناء عنها في حالة تطوير مواقع الويب، لكن لو توافر لديك الوقت يفضل أخذها. دورة تطوير تطبيقات الويب باستخدام لغة PHP: وهي تمثل البرمجة الخلفية للموقع، وهي الخطوة الأخيرة في برمجة المواقع، وتدرس كذلك مع قواعد البيانات لخلق موقع متكامل يؤدي وظائفه بشكل سلس وسليم.1 نقطة
-
1 نقطة
-
يمكنك استخدام العنصر section واعطاء خاصية background-image لهذا العنصر , كود html <section class="header"> ... </section> كود css .header{ background-image: url(تضع مسار الصورة هنا); } بداخل العنصر section تضع باقي مكونات القسم مثل navbar العلوي ثم الشعار ثم العنوان ثم navbar السفلي1 نقطة
-
هل يمكنك تعديل المثال في Code Pen لإرفاق ال HTML ايضا كمثال كامل لأقوم بمساعدتك1 نقطة
-
المشكلة هي في السطر التالي حيث this تدل على التابع التي توجد به مباشرة success:function(data){ $(this).next('.size_select').html(data); // this تدل على التابع الحالي } يمكن استبدالها بتابع مجهول حيث لا يملك هذا التابع القيمة this بل تكون تدل على قيمة التابع الأب له وهو الذي تريده كالتالي success:(data) => { $(this).next('.size_select').html(data); // this تدل على التابع الأب }1 نقطة
-
ممتاز جدا و اشتغلت عالمثال 10 / 10 المشكلة اني جيت اطبق الدالة دي في مثال آخر هو المطلوب اصلا و هو انه بيانات القوائم options بتيجي من داتابيز مش يدوي $(document).on('change', '.color_select', function() { // source menu var id = $(this).val(); //get the current value's option var mainDIV = $(this).parents('div.sara1'); // what is the parent div var menuSize = mainDIV.children().find(':selected').attr('size_select'); //second menu $.ajax({ type:'POST', url: "functions/getSize.php", data:{'id':id}, success:function(data){ $(this).next('.size_select').html(data); // i need to define this with a dynamic way } }); }); و مفيش اي حاجة بتظهر علما اني لما بجيب النتيجة بالشكل ده $(".size_select").html(data); بتشتغل عادي جدا لكن نفس المشكلة ، كل القوائم بتتغير1 نقطة
-
بداية لا يمكننا الدخول في أي علم من علوم الحاسوب دون أن يكون لدينا أي معرفة بمكونات الحاسوب او لا نعرف طريقة استخدامه ودون معرفة أنظمة التشغيل والمقصود فيها, وبشكل خاص لا يمكننا تعلم البرمجة دون تعلم قواعد البيانات وما المقصود بها وغيره الكثير من الأشياء المهمة والضرورية قبل البدء في أي مجال من مجالات الحاسوب, لذلك بداية تحتاج لدورة علوم الحاسوب والتي سوف تتعلم فيها جميع الأشياء التي ذكرتها سابقا, بعد ان ننجز دورة علوم الحاسوب نستطيع أن ندخل في دورة تطوير واجهات المستخدم والتي من خلالها سوف نتعلم بناء الجانب الامامي من الموقع, وهو الجانب الذي يراه المستخدم, وهو تصميم الموقع وشكل الخطوط ولونها وحجم الصور وغيرها من التنسيقات, الىن بعد الانتهاء من دورة تطوير واجهات المستخدم نحتاج الى لغة برمجة للتعامل مع قواعد البيانات لتخزين البيانات الخاصة بالموقع فيها, مثل اسم المتسخدم والايميل الخاص به وكلمة السر والصور والمواضيع الموجودة في الموقع, وأيضا عمليات الحذف والاضافة والتعديل على البيانات , وهذا هو الجانب الخلفي من الموقع (باك اند) , يتم من خلال احدى الدورتين : تطوير التطبيقات باستخدام لغة JavaScript أو تطوير تطبيقات الويب باستخدام لغة PHP , يمكنك الاكتفاء بواحدة منهما , اذا الترتيب يكون كالتالي دورة علوم الحاسوب دورة تطوير واجهات المستخدم دورة تطوير تطبيقات الويب باستخدام لغة PHP أو تطوير التطبيقات باستخدام لغة JavaScript1 نقطة
-
يمكنك استخدام هذا الكود لإضافة placeholder لكل حقل TextInput في النموذج الخاص بك. سيتم أخذ نص placeholder من تسميات الحقول الخاصة بالنموذج الخاص بك class PlaceholderDemoForm(forms.ModelForm): def __init__(self, *args, **kwargs): super(PlaceholderDemoForm, self).__init__(*args, **kwargs) for field_name in self.fields: field = self.fields.get(field_name) if field: if type(field.widget) in (forms.TextInput, forms.DateInput): field.widget = forms.TextInput(attrs={'placeholder': field.label}) class Meta: model = DemoModel1 نقطة
-
لو سمحت انا دفعت اول دوره وتم استلام المبلغ بنجاح ومع ذلك لم احصل علي الدوره مع العلم انا اشتركت امبارح1 نقطة
-
يمكنك التواصل مع مركز المساعدة من هنا وسيقومون بمتابعة المشكلة و توضيح الإجراءات1 نقطة
-
يمكن ذلك عن طريق تغيير استهداف القائمة المنسدلة التالية، انت تستهدف جميع العناصر ذات الصف select2، يمكنك الاستفادة من الدالة next في JQuery حيث تستهدف فقط العناصر اللاحقة للعنصر الحالي يمكن كتابة المثال كالتالي: $(".select1").change(function() { if ($(this).data('options') === undefined) { /*Taking an array of all options-2 and kind of embedding it on the select1*/ $(this).data('options', $('.select2 option').clone()); } var id = $(this).val(); var options = $(this).data('options').filter('[value=' + id + ']'); // نستهدف فقط العناصر اللاحقة والمجاورة للعنصر الحالي $(this).next('.select2').html(options); });1 نقطة
-
انا توقفت عند تلك النقطة .. اريد ان اقوم بتحويل ماتبقى من هذه الفانكشن لكلاس لاننى اريد رفع باكدج .. ارجو المساعدة import React, {useCallback, memo, useMemo} from 'react'; import { StyleSheet, Animated, View, TouchableWithoutFeedback, I18nManager, } from 'react-native'; import {ISwitchInter} from './types'; export class Switch extends React.Component<ISwitchInter> { constructor(props: any) { super(props); const {isActive = false} = this.props; this.state = {active: false}; this.slideInOut = React.createRef( new Animated.Value(isActive ? 1 : 0), ).current; } render() { const {contentContainerStyle, onValueChange, thumbStyle} = this.props; const toggleActive = useCallback(() => { // setActive(e => !e); this.setState({ active: !this.state.active, }); onValueChange && onValueChange(this.state.active); Animated.spring(this.slideInOut, { toValue: this.state.active ? 0 : 1, useNativeDriver: true, }).start(); }, [this.state.active, this.state.isActive]); const translate = { transform: [ { translateX: this.slideInOut.interpolate({ inputRange: [0, 1], outputRange: [0, 18.5], }), }, ], }; return ( <TouchableWithoutFeedback // onPress={toggleActive} > <View style={[ styles.container, contentContainerStyle, {borderColor: this.state.active ? '#FDEC00' : '#707070'}, ]}> <Animated.View style={[ styles.thumb, translate, thumbStyle, !this.state.active && {backgroundColor: '#707070'}, ]} /> </View> </TouchableWithoutFeedback> ); // [this.state.active, translate], } } export default memo(Switch); const styles = StyleSheet.create({ container: { backgroundColor: '#fff', width: 40, height: 18, borderRadius: 50, padding: 3, justifyContent: 'center', alignItems: I18nManager.isRTL ? 'flex-end' : 'flex-start', }, thumb: { width: 15, height: 15, borderRadius: 25, backgroundColor: '#FDEC00', }, });1 نقطة
-
سبب حدوث ذلك هو أن الصور تكون من نوع inline بشكل إفتراضي وبالتالي يتم حساب طولها من خلال ما يسمى بطول السطر line-height وهذه القيمة تختلف من متصفح لآخر، وبالتالي يمكن حل هذه المشكلة بطريقتين: يمكنك أن تحدد طول السطر line-height بقيمة 0 للعنصر .logo-container، كالتالي: .logo-container { line-height: 0; } كما يمكن حل المشكلة من خلال إضافة الخاصية display للصورة بقيمة block، كالتالي: img { display: block; } وذلك لأن في العناصر من نوع inline، تُستخدم خاصية line-height لحساب ارتفاع المحتوى نفسه. بينما في العناصر من نوع block، تُستخدم الخاصية line-height لتحديد الحد الأدنى لارتفاع المحتوى داخل العنصر. يمكنك أن تلقي نظرة على توثيق الخاصية line-height من خلال موسوعة حسوب لمعرفة المزيد عن هذه الخاصية.1 نقطة
-
إذا كنت تفضل عدم تحديد الحقل، على سبيل المثال لبعض الطرق الديناميكية، فيمكنك القيام بذلك كالتالي: def __init__(self, *args, **kwargs): super(MyForm, self).__init__(*args, **kwargs) self.fields['email'].widget.attrs['placeholder'] = self.fields['email'].label or 'email@address.nl' حل آخر من خلال تخصيص ال widget الافتراضي. إذا كنت تستخدم نفس ال widget الذي يستخدمه الحقل عادةً، فيمكنك ببساطة تخصيص ذلك بدلاً من إنشاء مثيل جديد: class sf(forms.Form): q = forms.CharField(label='Search') def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.fields['q'].widget.attrs.update({'placeholder': 'Search'})1 نقطة
-
بدايةً كتوضيح بسيط.. هناك نوعان من كائنات الوقت والتاريخ: "الواعي aware" و "البسيط naive". يمتلك الكائن الواعي معرفة كافية بالعمليات الحسابية والتعديلات الدولية على الأوقات، كالمناطق الزمنية والتوقيت الصيفي، وتعديل القيمة الخاصّة به بصورة تتناسب مع الكائنات الواعية الأخرى. يستخدم الكائن الواعي لتمثيل فترة زمنية معيّنة غير مفتوحة للتفسير. أما الكائن البسيط فلا يمتلك المعلومات الكافية ليضع نفسه في المكان الصحيح نسبة إلى كائنات الوقت أو التاريخ الأخرى. تعتمد القيمة التي يمثّلها الكائن البسيط، سواء أكانت التوقيت العالمي المنسق (Coordinated Universal Time UTC) أو التوقيت المحلي، أو التوقيت في منطقة زمنية أخرى، تعتمد هذه القيمة بصورة تامة على البرنامج، وهو المسؤول الوحيد عن تمثيل رقم معيّن للأمتار أو الأميال أو الكتلة. بالنسبة لكائن datetime فهو من النوع البسيط. ولمزيد من التفاصيل يمكنك زيارة الرابط التالي: https://wiki.hsoub.com/Python/datetime#.D8.A7.D9.84.D8.B5.D9.86.D9.81_datetime.date أما بالنسبة للمشكلة فيجب عليك إضافة معلومات المنطقة الزمنية إلى datetime.now: # aware_variable معلومات المنطقة الزمنية لل timezone = your_timezone_aware_variable.tzinfo # التاريخ والوقت الحالي للمنطقة الزمنية للمتغير الخاص بك now_in_timezone = datetime.datetime.now(timezone) #يمكنك الآن إجراء مقارنة بينهما، فكل من متغيري التاريخ والوقت لهما نفس المنطقة الزمنية if your_timezone_aware_variable <= now_in_timezone: pass ويمكنك اختصار ماسبق بسطر واحد: if timezone_aware_var <= datetime.datetime.now(timezone_aware_var.tzinfo): pass1 نقطة
-
يمكنك أن تقوم بذلك من خلال : query = forms.CharField(label = 'search', widget = forms.TextInput(attrs = {'placeholder': 'Search'})) حيث تقبل widget كائن من نوع TextInput والذي بدوره يمكنك من الحصول على قيمة أي خاصية مثل placeholder على سبيل المثال. والطريقة الأخرى لعمل نفس الشيء هي إستخدام صنف Meta، كالتالي: from django import forms from .models import SearchModel class SearchForm(forms.ModelForm): class Meta: model = SearchModel widgets = { 'name': forms.TextInput(attrs={'placeholder': 'Search'}), }1 نقطة
-
تم إزال الموديول django.core.urlresolvers من جانغو بداية من الإصدار 2.0، وبدلًا من ذلك تم يجب إستخدام django.urls، لذلك يجب تغير كل جمل import لكي تبدو على النحو التالي: from django.urls import reverse لاحظ أن الإصدار 2.0 من جانغو Django يزيل بعض الميزات التي كانت موجودة سابقًا في django.core.urlresolvers، لذلك قد تضطر إلى إجراء المزيد من التغييرات قبل أن يعمل الكود الخاصة بك. يمكنك أن تستخدم توثيق جانغو Django لمراجعة الميزات التي تم إيقاف العمل بها في الإصدار 1.9 للحصول على تفاصيل حول هذه التغييرات الإضافية.1 نقطة
-
بشكل افتراضي، يكون كائن التاريخ والوقت في Python من نوع naive، لذلك تحتاج إلى جعل كلاهما إما كائنات naive أو aware. ويمكن القيام بذلك باستخدام: import datetime import pytz utc = pytz.UTC post.datetime_start = utc.localize(post.datetime_start) post.datetime_end = utc.localize(post.datetime_end) # الآن كلا الحقلين من نوع aware, ويمكن المقارنة بينهما كما أن جانغو Django يقدم طريقة سهلة لكي تحصل على الوقت والتاريخ الحاليين بنفس الصيغة التي يستعملها من خلال التبع datetime.datetime.now، على النحو التالي: from django.utils import timezone now = timezone.now() كما يمكنك أن تقوم بتحويل الوقت والتاريخ من صيغة UNIX من خلال الكائن datetime.datetime، كالتالي: unix_time = int(unix_timestamp) d = datetime.datetime.utcfromtimestamp(unix_time) d_with_tz = datetime.datetime( year = d.year, month = d.month, day = d.day, hour = d.hour, minute = d.minute, second = d.second, tzinfo = pytz.UTC)1 نقطة
-
إسم القالب هو soledad و هو قالب متعدد الأغراض يُمكنك التحقق من إسم القالب و معرفة إسم القالب بإستخدام أحد الأدوات المتوفرة على الإنترنت مثلاً: scanwp تضع فقط رابط الموقع الذي تريد فحصه و سيعطيك بعض المعلومات عنه. أيضاً هناك طريقة بسيطة تُمكنك من معرفة إسم القالب بإستخدام متصفحك الخاص فقط تم شرح الطريقة هنا:1 نقطة
-
إذا كنت ترغب في إضافة queryset إلى حقل many to many، فقم أولاً بتغييره إلى قائمة وأضفه كوسائط موضعية باستخدام *: #queryset يرجع p = Permission.objects.all() #many to many إضافة النتيجة إلى حقل g = MyGroup.objects.get(name='..') g.permissions.add(*p)1 نقطة
-
التابع add يقبل إدخال أكثر من كائن في نفس الوقت بالشكل التالي: Users.m2mfield.add(obj1, obj2, obj3) أي أنه يجب أن تمرر الكائنات مباشرة إلى التابع add وليس تمرير قائمة من الكائنات. إن كانت لديك قائمة من الكائنات وتريد تمرير محتوياتها فيمكنك أن تستخدم علامة * قبل القائمة على النحو التالي: Users.m2mfield.add(*[obj1, obj2, obj3]) ولاحظ أن بهذه الطريقة لا يقوم جانغو Django يإستدعاء التابع save لكل كائن، ولكنه يستخدم التابع bulk_create، وبالتالي يتم تنفيذ جملة SQL واحدة فقط. وفي حالة أردت أن تقوم بتحديث الكئانات الموجودة بالفعل في قاعدة البيانات، فيمكنك أن تستعمل التابع set والذي يقوم بحذف كل الكائنات الموجودة في هذه العلاقة (many-to-many)، وينشيئهم من جديد، وتستخدم على النحو التالي: Users.m2mfield.set([obj1, obj2, obj3]) لاحظ أن التابع set يقبل تمرير قائمة من الكائنات بشكل مباشر (أي بدون وضع علامة * قبل القائمة).1 نقطة
-
يتم استخدام SECRET_KEY في العديد من الأماكن المختلفة في مشروغ جانغو Django، وسأوضح ما التأثيرات و الأضرار التي قد تحدث إذا قمت بتغيير الـ SECRET_KEY. قائمة الأشياء التي تستخدم SECRET_KEY بشكل مباشر أو غير مباشر: JSON object signing دوال التشفير لـ salted hmacs أو دعم محرك توليد النصوص والأرقام العشوائية الذي يؤثر على كل من: توليد رمز إعادة تعين كلمات السر password reset token (للمستخدمين والمسؤولين) comment form security: لحماية الموقع من طلبات POST من مواقع غريبة form security: حماية النماذج بشكل عام message tampering، لأنه قد يستخدم ملفات الكوكيز Cookis لنقل البيانات بين ملفات العرض views حماية الجلسات session data وعمل مفاتيح عشوائية للجلسات session keys توليد random salt من أجل إستخدامها في دوال الهاش password hashers توليد كلمات مرور عشوائية passwords، إذا تطلب الأمر عمل مفتاح CSRF ما سوف يتغير عند المستخدم بشكل مباشر عند تغيير قيمة SECRET_KEY هي: الجلسات، سيتم كسر فك تشفير البيانات، وهو صالح لأي خلفية جلسة (ملفات تعريف الارتباط أو قاعدة البيانات أو الملفات المستندة إلى ذاكرة التخزين المؤقت). لن يعمل رمز إعادة تعيين كلمة المرور الذي تم إرساله بالفعل لأي مستخدم، وسيتعين على المستخدمين طلب رمز جديد. لن يتم التحقق من صحة نموذج التعليقات (في حالة استخدام django.contrib.comments) إذا تم طلبه قبل تغيير القيمة (أي إذا تم تحمليه في المتصفح ثم تم تغير الـ SECRET_KEY) وتقديمه بعد تغيير القيمة. أعتقد أن هذا بسيط جدًا ولكنه قد يكون مربكًا للمستخدم. الرسائل (من django.contrib.messages) لن تتحقق من جانب الخادم مثل نموذج التعليقات. بداية من جانغو Django الإصدار 1.10 يمكنك توليد SECRET_KEY جديد من خلال دالة get_random_secret_key على النحو التالي: ./manage.py shell -c "from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())"1 نقطة
-
يصف العنصر الدلالي بوضوح معناه لكل من المتصفح والمطور. أمثلة على العناصر غير الدلالية non-semantic مثل: div و span - لا تحدد محتوياتها بوضوح. أمثلة على العناصر الدلالية semantic :مثل footer و header و article - تحدد محتوياتها بوضوح (أي أنها تستخدم في حالات معينة). لكل عنصر من نوع semantic يكون له مكان معين يُستعمل فيه، وفي أغلب الأحيان سوف تحصل على نفس النتيجة إن أستعملت div فقط بدلًا من nav أو header على سبيل المثال، لكن الفرق يظهر عندما تريد أن يظهر موقعك في النتائج الأولى لمحركات البحث، حيث تنصح جوجل (وباقي محركات البحث بالطبع) أن تستخدم كل عنصر في مكانه الصحيح، حتى يصبح الأمر أسهل على محركات البحث من فهم محتوى صفحتك، وبالتالي تساعد في تحسين SEO الخاص بالموقع. هنا صورة توضح الأماكن الرئيسية لكيفية إستخدام أهم العناصر الدلالية semantic: header: هو رأس الصفحة ويوجد فيه في الغالب شعار الموقع وأزرار تسجيل الدخول والإشعارات، وقد يحتوي أشياء أخرى مثل زر لفتح قائمة جانبية أو نافذة للبحث .. إلخ. nav: هو المكان الذي يوجد فيه أهم الروابط الرئيسية في الموقع، يمكنك أن ترى شرط التنقل في موقع حسوب في الأعلى وستجد أنه يحتوي على رابط الصفحة الرئيسية وأقسام المقالات وأقسام الأسئلة العامة، والدورات .. إلخ، أي أنه يحتوي على أهم روابط الموقع فقط. aside: يعبر عن الشريط الجانبي، وقد يحتوي على آخر التعليقات، أحدث المقالات أو حتى روابط صفحات التواصل الإجتماعي الخاص بالموقع. footer: يكون في الغالب هو آخر جزء في الموقع، ويحتوي على بعض الصفحات العامة عن الموقع، مثل صفحة "تواصل معنا"، وصفحة "معلومات عنا" وصفحات مختلفة أخرى، وقد يحتوي على روابط التواصل الإجتماعي أيضًا وعلى نموذج للتواصل مع مدير الموقع. main: يحتوي على الجزء الرئيسي من الصفحة، مثل الجزء الذي يظهر فيه التدوينة (في المدونات)، أو نتائج البحث (في محركات البحث)، أو حتى المكان الذي يظهر فيه مقطع الفيديو (إن كان موقع لنشر فيديدوهات)، يجب أن تحتوي الصفحة على عنصر main واحد على الأكثر. article: تكون في الغالب داخل عنصر main وتحتوي على المقالة/التدوينة. section: يستخدم لتقسيم أجزاء الصفحة التي ليس لديها عنصر خاص، على سبيل المثال، يوجد للمقالة عنصر article، ولكن لا يوجد عنصر لعارض شرائح slideshow وبالتي سوف تستخدم هذا العنصر وتضع في داخله عارض الشرائح (بإعتبار أن عارض الشرائح عبارة عن قسم في الصفحة، أي جزء رئيسي منها). address: يستخدم لعرض العناوين بشكل خاص، ومعلومات التواصل بشكل عام time: لعرض التواريخ والأوقات هذه بعض العناصر الدلالية semantic elements والأكثر إستخدامًا. وقد تساعدك هذه المقالة (تعرف على أكثر الأخطاء شيوعا لدى استخدام HTML5) في معرفة بعض الأخطاء التي يقع فيها الكثير من مطوير الويب.1 نقطة
-
semantic element (العناصر الدلالية) : هي مجموعة من عناصر HTML لها دلالة منطقية أو معنى ، مثل <header>: في الغالب يحتوي على اسم الموقع واللوجو الخاص فيه <nav> : الجزء الذي يحتوي على القائمة <section> : الجزء لذي يتم وضع المحتوى فيه <aside> : الشريط الجانبي للموقع <figure> : الأقسام التي تحتوي على صور وأشكال وغيرها <footer> : يتم وضع فيه معلومات على الموقع وغيرها من العناصر أهميتها واستخدمها :- في إصدارات سابقة في HTML كان يقسم الموقع عن طريق <div> وإعطاء <div> كلاس (class) معين يعبر عنه لكن مع semantic element (العناصر الدلالية) أصبح يستفيد منها مطورين الويب في جعل محركات البحث فهم أجزاء الصفحة وأين توجد المعلومات ذات أهمية وتظهرها في نتائج البحث والمساعدة في عملية SEO .1 نقطة
-
الأفضل إستخدام semantic element دائما في كل مشاريعك لكي تجعل الكود الخاص بك اكثر سهولة في القراءة و التعديل و تحسين search engine optimization و semantic element مثل <header> : تستخدم مع header الخاص بال document <footer> : تستخدم مع footer الخاص بال document <nav> : تستخدم مع روابط التنقل <main>: تستخدم مع المحتوي الرئيسي للموقع <section>: تستخدم مع قسم في الموقع <article>: تستخدم مع مقالة في الموقع <address>: تستخدم مع المعلومات الخاصة بالتواصل <figure>:تستخدم مع الصور و الرسوم البيانية1 نقطة
-
السلام عليكم. متى نستخدم وسم <div>, حيث أن هناك تصاميم معينة ليست متأكدا لما يستخدم أصحابها وسم <div> في أمكنة معينة, لدينا على سبيل المثال هذا الكود : <!--هذا كود لإنشاء الناف بار الموجود أعلى الصفحة--> <body> <div class="banner"> <div class="navbar"> <img src="logo.png"> <ul> <li></li> <li></li> <li></li> <li></li> </ul> </div> </div> <body> .banner { width: 100%; height: 100vh; background-image: linear-gradient( rgba(0,0,0,0.75), rgba(0,0,0,0.75) ), url("../images/image.jpg"); background-size: cover; } لماذا إستخدم صاحب التصميم <div class="banner> ؟ ألم يكن من الممكن إستخدام <body> ؟ فيديو صاحب التصميم المذكور أثناء تصميمه الصفحة التي جلبت منها الكود الموجود فوق : https://www.youtube.com/watch?v=PgAZ8KzfhO81 نقطة
-
تطرقنا في أكاديمية حسوب سابقًا إلى أساسيات الصندوق المرن Flexbox وكيف يُمكن للمطوّر استخدام هذه الخاصية الرائعة في CSS3، وفي هذا المقال سنكمل مع الأساسيات ولكن بتركيز على الأمثلة بعيدًا عن الكلام النظري، وللحصول على الفائدة المطلوبة من هذا الأمثلة من الضروري قراءة المقال الآنف الذكر، وتحديث المتصفح إلى آخر إصدار متوفّر لتطبيق وعرض الأمثلة بالشكل الصحيح. إنشاء حاوية مرنة Flex Containerإن الخطوة الأولى في هيكلة أجزاء الصفحة باستخدام الصندوق المرن flexbox هي إنشاء المستوعبة/الحاوية المرنة flex container، وذلك من خلال إسناد قيمة الخاصية display إلى flex، مع الانتباه إلى إضافة البادئة webkit- من أجل المتصفح ‹‹سفاري›› Safari. .flexcontainer { display: -webkit-flex; display: flex; }توضيع العناصر المرنة Flex Items ضمن صف Rowعناصر الصندوق المرن ما هي إلا أبناء (عناصر فرعية) من الحاوية المرنة flex container، وتتموضع على طول محور رئيسي main axis ومحور جانبي cross axis، المحور الرئيسي هو أفقي افتراضيًا، ولذلك العناصر تتموضع ضمن صف، ومن الممكن تغيير اتجاه المحور الرئيسي من خلال إسناد flex-direction إلى القيمة column، والتي هي افتراضيا row. .flexcontainer { display: -webkit-flex; display: flex; -webkit-flex-direction: row; flex-direction: row; } توضيع العناصر المرنة Flex Items ضمن عمود Column.flexcontainer { display: -webkit-flex; display: flex; -webkit-flex-direction: column; flex-direction: column; } نقل العناصر المرنة Flex Items إلى الجهة العلويةيَعتمد نقل العناصر المرنة إلى الأعلى على اتجاه المحور الرئيسي main axis، فإن كان عموديًا vertical، يُمكن استخدام الخاصية align-items، وإن كان أفقيًا horizontal، فيُمكن استخدام الخاصية justify-content. .flexcontainer { -webkit-flex-direction: column; flex-direction: column; -webkit-justify-content: flex-start; justify-content: flex-start; } .flexcontainer { display: -webkit-flex; display: flex; -webkit-flex-direction: row; flex-direction: row; -webkit-align-items: flex-start; align-items: flex-start; } نقل العناصر المرنة Flex Items إلى جهة اليمينيَعتمد نقل العناصر إلى جهة اليسار أو جهة اليمين على اتجاه المحور الرئيسي أيضًا، فإن كان flex-direction معينًا إلى row (صف)، عندها يجب استخدام justify-content، وإن كان مُعيّنًا إلى column (عمود)، عندها يجب استخدام align-items. .flexcontainer { display: -webkit-flex; display: flex; -webkit-flex-direction: row; flex-direction: row; -webkit-justify-content: flex-start; justify-content: flex-start; } .flexcontainer { display: -webkit-flex; display: flex; -webkit-flex-direction: column; flex-direction: column; -webkit-align-items: flex-start; align-items: flex-start; } نقل العناصر المرنة Flex Items إلى جهة اليسار .flexcontainer { display: -webkit-flex; display: flex; -webkit-flex-direction: row; flex-direction: row; -webkit-justify-content: flex-end; justify-content: flex-end; } .flexcontainer { display: -webkit-flex; display: flex; -webkit-flex-direction: column; flex-direction: column; -webkit-align-items: flex-end; align-items: flex-end; } توسيط كافة العناصر باستخدام Flexboxيُعتبر توسيط العناصر في المستوعبة سواء كان عموديًا أو أفقيًا سهلًا للغاية، كل ما يجب فعله هو إسناد justify-content و/أو align-items إلى القيمة center، ويعتمد الأمر دائمًا على اتجاه المحور الأساسي main axis وذلك فيما إذا كان قيمة الخاصية flex-direction مسندة إلى القيمة row أو column. .flexcontainer { display: -webkit-flex; display: flex; -webkit-flex-direction: row /* works with row or column */ flex-direction: row; -webkit-align-items: center; align-items: center; -webkit-justify-content: center; justify-content: center; } تكبير حجم عنصر مرن Flex Item نسبة إلى العناصر المرنة الأخرىيُمكن تحديد كيف لعنصر مرن أن يزداد أو بنقص بالحجم نسبة إلى باقي العناصر الأخرى في المستوعبة، ولتطبيق ذلك يمكن إسناد القيمة المطلوبة ولكل عنصر ومن خلال الخاصية flex، ففي المثال التّالي، تمّ زيادة حجم أحد العناصر إلى ضعف حجم العنصر الآخر. .bigitem { -webkit-flex: 2 0 0; flex: 2 0 0; } .smallitem { -webkit-flex: 1 0 0; flex: 1 0 0; } التفاف العناصر المرنة إلى صفوف Wrap flex items into rowsتأخرت بعض المتصفحات في دعم هذه الخاصية مثل متصفح Firefox، على العموم من المفترض أن تعمل هذه الخاصية في الوقت الحالي مع جميع المتصفحات بإصداراتها الأخيرة. .flexcontainer { display: -webkit-flex; display: flex; -webkit-align-items: center; align-items: center; -webkit-justify-content: center; justify-content: center; /* You can set flex-wrap and flex-direction individually */ -webkit-flex-direction: row; flex-direction: row; -webkit-flex-wrap: wrap; flex-wrap: wrap; /* Or do it all in one line with flex flow */ -webkit-flex-flow: row wrap; flex-flow: row wrap; /* tweak the where items line up on the row */ /* valid values are: flex-start, flex-end, space-between, space-around, stretch */ -webkit-align-content: flex-end; align-content: flex-end; } التفاف العناصر المرنة إلى أعمدة Wrap flex items into columns .flexcontainer { display: -webkit-flex; display: flex; -webkit-align-items: center; align-items: center; -webkit-justify-content: center; justify-content: center; -webkit-flex-flow: column wrap; flex-flow: column wrap; -webkit-align-content: stretch; align-content: stretch; } إزالة المساحة بين الأعمدة أو الصفوف الملتفةتُقدّم الخاصية align-content للمطوّر إمكانية توزيع المساحة حول الأعمدة والصفوف الملتفة wrapped، وذلك بتقديم الخيارات التالية: flex-startflex-endspace-betweenspace-aroundstretchولإزالة المساحة حول الأعمدة الملتفة، يمكن إسناد align-content إلى center. .flexcontainer { display: -webkit-flex; display: flex; -webkit-align-items: center; align-items: center; -webkit-justify-content: center; justify-content: center; -webkit-flex-flow: column wrap; flex-flow: column wrap; -webkit-align-content: center; align-content: center; } تخصيص مكان العنصر في الحاويةيُمكن للمطوّر التحكم بقيمة align-items لكل عنصر على حِدة باستخدام align-self، وكما يمكن أيضًا استخدام margins لتحريك أي عنصر وفي أي اتجاه من الاتجاهات الأربعة، فمثلًا لتوزيع أعمدة الصّفحة يُمكن تحريك العنصر المرن إلى أقصى يسار مستوعبته من خلال إسناد margin-right إلى القيمة auto. .left { -webkit-align-self: flex-start; align-self: flex-start; } .right { margin-left: auto; } خاتمةخاصيّة الصندوق المرن خاصيّة رائعة ومن الضروري على مطوّر الويب إضافتها إلى أدواته في التطوير خاصة وأنها أصبحت مدعومة بشكل جيّد مع المتصفحات. ترجمة وبتصرّف للمقال The Ultimate Flexbox Cheat Sheet.1 نقطة