اذهب إلى المحتوى

لوحة المتصدرين

  1. محمد الحربي36

    محمد الحربي36

    الأعضاء


    • نقاط

      4

    • المساهمات

      97


  2. Rayan Salman

    Rayan Salman

    الأعضاء


    • نقاط

      2

    • المساهمات

      96


  3. عمر قره محمد

    عمر قره محمد

    الأعضاء


    • نقاط

      1

    • المساهمات

      4096


  4. Wael Aljamal

    Wael Aljamal

    الأعضاء


    • نقاط

      1

    • المساهمات

      6975


المحتوى الأكثر حصولًا على سمعة جيدة

المحتوى الأعلى تقييمًا في 09/18/22 في كل الموقع

  1. هناك بعض الدروس الذي اشاهد فقط ، واحاول العمل مع المعلم لكن اعتقد ان اذا اردت الالمام في كل شي في الدورة سيتطلب وقت اكثر ، من ان انهي الدورة وتتضح لي الخطوط الاساسية وبعدين اي مشكلة اواجه تكون الدورة بمثابة مرجع ، هل انا اعمل صح ، او فقط اضيع الوقت؟
    2 نقاط
  2. models.py from django.db import models from django.contrib.auth.models import User from django.utils.translation import gettext_lazy as _ from django.db.models.signals import post_save from django.utils.text import slugify class Profile(models.Model): user = models.OneToOneField(User , verbose_name=_("user"), on_delete=models.CASCADE) name =models.CharField(_("Name:"),max_length=50) subtitle =models.CharField(_("Who_II:"),max_length=50) address =models.CharField(_("Address:"),max_length=50) address_detial=models.CharField(_("address_detial:"),max_length=50) number_phone =models.CharField(_("number_phone:"),max_length=50) working_hours =models.CharField(_("working_hours:"),max_length=50) waiting_time =models.IntegerField(_("waiting_time"), blank=True, null=True) who_I =models.TextField(_("Who I"),max_length=250, blank=True, null=True) price =models.IntegerField(_("Price is"), blank=True, null=True) facebook =models.CharField(max_length=100,blank=True, null=True) twitter =models.CharField(max_length=100,blank=True, null=True) google =models.CharField(max_length=100,blank=True, null=True) image = models.ImageField(_("Photo Profile"), upload_to='profile', blank=True, null=True) Specialist_doctor=models.CharField(_("Specialist:"),max_length=100, blank=True, null=True) slug =models.SlugField(_("slug"), blank=True, null=True ) def save(self,*args,**kwargs): if not self.slug: self.slug=slugify(self.user.username) super(Profile,self).save(*args,**kwargs) def get_queryset(self): return models.Task.objects.all() class Meta: verbose_name = _("Profile") verbose_name_plural= _("Profiles") def __str__(self): return '%s' %(self.user.username) def create_profile(sender , **kwargs): if kwargs['created']: Profile.objects.create(user=kwargs['instance']) post_save.connect(create_profile , sender=User) urls.py: from django.urls import path from . import views app_name='accounts' urlpatterns = [ path('', views.map, name='map'), path('doctors/', views.doctors_list, name='doctors_list'), path('login/', views.user_login, name='login'), path('signup/', views.signup, name='signup'), path('myprofile/', views.myprofile, name='myprofile'), path('update_profile/', views.update_profile, name='update_profile'), path('<slug:slug>/', views.doctors_detail, name='doctors_detail'), ] views.py: from django.shortcuts import render,redirect from django.contrib.auth.models import User from .models import Profile from .forms import Login_Form,UserCreationForms,UpdateUserForm,UpdateProfileForm from django.contrib.auth import authenticate , login from django.contrib.auth.decorators import login_required def doctors_list(request): doctors = User.objects.all() return render(request, 'user/doctors_list.html',{ 'doctors' : doctors, }) def doctors_detail(request, slug): doctors_detail = Profile.objects.get(slug = slug) return render(request, 'user/doctors_detail.html',{ 'doctors_detail' : doctors_detail, }) def user_login(request): if request.method == 'POST': form = Login_Form() username = request.POST['username'] password = request.POST['password'] user = authenticate(request , username=username , password=password) if user is not None: login(request , user) return redirect('accounts:doctors_list') else: form = Login_Form() return render(request, 'user/login.html',{ 'form':form }) def signup(request): if request.method == 'POST': form = UserCreationForms(request.POST) if form.is_valid(): form.save() username = form.cleaned_date.get('username') password = form.cleaned_date.get('password') user = authenticate(username=username , password=password) login(request,user) return redirect('accounts:doctors_list') else: form = UserCreationForms() return render(request , 'user/signup.html'),{ 'form':form, } @login_required() def myprofile(request): return render(request, 'user/myprofile.html',{ }) def update_profile(request): user_form = UpdateUserForm(instance=request.user) profile_form=UpdateProfileForm(instance=request.user.profile) if request.method == "POST": user_form = UpdateUserForm(request.POST , instance=request.user) profile_form=UpdateProfileForm(request.POST ,request.FILES,instance=request.user.profile) if user_form.is_valid and profile_form.is_valid: user_form.save() profile_form.save() return redirect('accounts:myprofile') return render(request, 'user/update_profile.html',{ 'user_form' : user_form, 'profile_form':profile_form, }) def map(request): return render(request, 'user/map.html',{ })
    1 نقطة
  3. سلام عليكم لو فيه عنوان افضل يا ريت المشرف الفاضل يغيره مع الشكر بعمل نظام مناقصات لعميل و الدنيا تمام الحمد لله بس فيه شئ واقف قدامي من ضمن بيانات تسجيل المناقصة المستخدم بيختار عدد بنود التوريد بعدها بيفتح له خانات يدخل فيها اسم البند و عدد بنود الحزم اللي هاتتسجل جوا البند ده نفترض مثلا ان المستخدم قام باختيار 3 بنود توريد يعني هاتتفتحلي 3 divs تحتوي على اسم بند التوريد و عدد الحزم التابعه لهذا البند تحديدا و زر هايقوم بفتح اماكن ادخال للمستخدم كل بند توريد بداخله اسماء الحزم الخاصة به الآن زر الاضافة لا يعمل سوى لبند توريد واحد فقط الكود <div class="col-12 count2 " style="display: none"> <div class=" has-success mb-4"> <label class="required">عدد بنود التوريد </label> <div class="input-group"> <div class="input-group-prepend"> <span class="input-group-text" id="inputGroupPrepend"><i class="fa fa-th"></i></span> </div> <input type="number" min="1" max="12" class="form-control pack1-count1" required> <div class="input-group-append"> <button type="button" class="btn btn-danger pack1">إضافة</button> </div> </div> </div> </div> ثم كود السكربت $(".pack1").click(function () { let count = $(".pack1-count1").val(); if (count>0){ $(".supply-fields1").remove(); var si_inputs = ''; for (i=0 ; i<count ; i++) { si_inputs += ` <div class="row mt-3 mb-4 supply-fields1 "> <div class="col-9"> <div class=" has-success mb-4"> <label class="label">أسم بند التوريد</label> <div class="input-group"> <input required type="text" class="form-control contact_person" > </div> </div> </div> <div class="col-2"> <div class=" has-success mb-4"> <label class="label">عدد الحزم المطلوبة</label> <div class="input-group"> <input required type="text" step="any" class="form-control pack2-count2"> </div> </div> </div> <div class="col-1 mt-4"> <button id="mo" type="button" class="btn btn-primary pack4">إضافة</button> </div> </div>`; } $(this).parent().parent().parent().after(si_inputs); } //########################################## $(".pack4").click(function () { let count2 = $(".pack2-count2").val(); if (count2>0){ $(".supply-fields2").remove(); var si_inputs = ''; for (i=0 ; i<count2 ; i++) { si_inputs += ` <div class="col-12 mb-2 mt-3 row d-flex align-items-center supply-fields2"> <label for="cc-payment" class="control-label mb-3 text-danger">إسم الحزمة</label> <input type="text" name="supply_items" class="form-control supply_items" > </div>`; } $(this).parent().parent().parent().after(si_inputs); } }); //############################################ }); فيديو توضيحي Untitled Project.mp4
    1 نقطة
  4. لا يوجد خطأ في الكود الذي أرفقتيه , لذالك الخطأ على الأرجح قد يكون في ملف sqlite , احذف مجلد migrations وملف sqlite ثم بعد ذلك طبق التعليمات التالية python manage.py makemigrations ثم python manage.py migrate
    1 نقطة
  5. قمت بعمل سكيما بإسم User وأنشأت الكود الذي يمكّنني من إنشاء مستخدم جديد بواسطة هذه السكيما في ملف السيرفر وقمت بعمل ملف السكيما ومن خصائص هذه السكيما أن الإيميل unique أي لا يسمح النظام بإنشاء حسابين بنفس الإيميل ولكن عندما أستخدم البوستمان لتجربة عمل الأكواد بشكل صحيح لا يحدث إيرور يعني ببساطة كأن كلمة unique غير موجودة يقوم النظام بإنشاء مستخدم جديد بنجاح حتى بإيميل مكرر فأرجوا المساعدة لمعرفة ما لمشكلة أرفقت صور للأكواد : الصورة الأولى كود السكيما في ملف السيرفر الصورة الثانية ملف السكيما الصورة الثالثة للبوستمان
    1 نقطة
  6. هذه هي backend.rar أرسل حل المشكلة وأنا سأرد عليك بعد الصلاة ان شاء الله وشكرا مقدما
    1 نقطة
  7. ملف اليوزر هو ملف السكيما هل أقوم بإرفاق ملف الباكاج جيسون أم لا؟ db.js server.js user.js
    1 نقطة
  8. ملف الباكإند تقصد؟ ولا المشروع كامل؟
    1 نقطة
  9. انا دورت في موقع pinterest بس برضو مش عارف اخد افكار كويسه علشان اعمل موقعي الشخصي ومش عارف اكتب فيه ايه ممكن حد يساعدني مم
    1 نقطة
  10. تصميم المواقع هو عبارة عن مجال موازي لتطوير المواقع وانت بحاجة لتحصيل مهارات في التصميم حتى تستطيع بناء موقع متناسق وجميل، ولهذا انصحك بأن تقوم بالبحث عن تصميم كامل وتقوم بتعديله ليتناسب مع ذوقك وهذا هو الخيار السهل، أو ان تقوم بتعلم اساسيات التصميم و الاطلاع على عدد كبير من المواقع من النوع portfolio. وكذلك يمكنك الطلاع على هذه المقالات التي تحتوي على بعض الـ portfolios التي قد تلهمك اكثر في بناء موقع. 15 Web Developer Portfolios to Inspire You 30 Web Developer Portfolios to Inspire You اطلع على :
    1 نقطة
  11. ما تفعله أمر حسن جدّاً، لكن أنصحك بتلخيص محتوى الفيديوهات، فاكتب الأفكار الجديدة على دفتر بحيث يكون لك مرجعك الخاص وملاحظاتك المهمة حول الأشياء الجديدة التي تتعلمها. فإنّ كتابة كل جديد تتعلمه سيفيدك من ناحيتين، الأولى: أنك لن تمر على الأفكار القديمة التي كنت قد تعلمتها من قبل، ومن ناحية أخرى: ستستثمر وقتك، فسيكون وقت المراجعة قليلاً جدّاً مقارنة بمتابعة الفيديوهات مرة أخرى. ولا بدّ أن تعرف أنك لا تضيع الوقت بزيادة معارفك ولو عدت المعلومة عشرات المرات، فالمهم هو فهمك لهذه المعلومة وزيادة قيمك المعرفية.
    1 نقطة
  12. السلام عليكم عندي مشاريع علي Github تمت باستخدام npm و webpack , لعرض الموقع من جهازي سأقوم بكتابة امر npm run dev او build في ال cmd ولكن إذا قمت بتحميل ملفات المشروع من علي github ونفذت نفس الأمر لا يقوم بعرض الموقع وتظهر هذه الرسالة
    1 نقطة
  13. عند رفع المشاريع على github لا نرفع ملفات الحزم البرمجية فمجلد node_modules لا يكون موجود عند التحميل. لذلك قبل تنفيذ أمر npm run build تحتاج إلى تنفيذ أمر: npm install لجلب الحزم الأساسية المستخدمة في المشروع، و من بينها حزمة webpack، هل قمت بهذه الخطوة ؟
    1 نقطة
  14. بعض النقاط التي سوف تشجعك لتصميم Portfolio خاصتك ضع روابط وسائل التواصل الاجتماعي / البريد الاكتروني التعريف بنفسك عرض المشاريع الشخصية لك شرح العمل الذي سوف تقوم بتقديمه بسيط و مباشر يعكس شخصيتك ويتحدث عنك يبرز مهاراتك يمكن أن يحوي لوغو أو شعارك
    1 نقطة
  15. أثناء قراءة التعليمات الإرشادية لتثبيت تطبيق ما ستصادف غالبًا مصطلحات مثل فلات باك Flatpak وسناب Snap وآب إيماج AppImage، وربما تكون قد استخدمت أحدها على لينكس بدون أن تعلم، فما هي هذه المصطلحات؟ يُعَد كل من فلات باك وسناب وآب إيماج نظامًا شاملًا للتحزيم packaging، وسنخص بالذكر في هذا المقال نظام فلات باك. المشكلات قبل فلات باك يُعَد تثبيت وإدارة البرمجيات أحد أهم جوانب إدارة نظام لينكس، والتي تزداد صعوبتها بسبب وجود العديد من توزيعات لينكس. وعند استخدام الأنظمة التقليدية لإدارة الحزم بتنسيقات تقليدية deb/rpm، كانت تتواجد المشكلات التالية أثناء محاولة تشغيل برنامج ما في النظام: البحث عن المكتبات اللازمة لعمل البرنامج. الاعتماديات، والتي تعني اعتماد البرنامج في عمله على حزم أخرى. الحاجة لتحقيق التوافق مع مدير الحزم الجديد عند التبديل من توزيعة لينكس الأخرى. لا توفر أمانًا كبيرًا لعمليات تثبيت وإدارة البرمجيات. يمكن لمستخدمي لينكس المحترفين إيجاد أفضل طريقة للتغلب على الصعوبات، ولكن بالنسبة للمبتدئين أو المستخدمين الذين لا يمتلكون وقتًا لتعلم إدارة الحزم أو يجدون صعوبةً بتعلمها أو الخبرة بالبحث عن كل خلل وإصلاحه؛ يكون الأمر صعبًا جدًا، وهنا يأتي دور فلات باك. ما هو فلات باك Flatpak بالتفصيل؟ أسّس ألكسندر لارسون Alexander Larsson فلات باك مفتوح المصدر في صيف عام 2007 ليكون نظامًا مُساعدًا لإدارة الحزم ويتيح نشر البرمجيات وتثبيتها وإدارتها، ويتم تثبيت البرمجيات بلا أي مشكلات ودون الحاجة إلى القلق بشأن الاعتماديات أو زمن التنفيذ أو المكتبات التي يحتاجها البرنامج في عمله أو توزيعة لينكس المستخدمة سواءً كانت التوزيعة تعتمد على ديبيان أو آرتش لذلك يوُصف بالنظام الشامل الذي وفر حلولًا لمعظم مشكلات الأنظمة التقليدية. آلية عمل فلات باك تعمل تطبيقات فلات باك في بيئة معزولة sandbox تحتوي على عدة أمور لتلبية متطلبات تشغيل برنامج محدد مثل زمن التنفيذ والمكتبات المجمعة. وبسبب خاصية العزل، لا يمكن لتطبيقات فلات باك أن تجري أي تغييرات على النظام دون إذن من المستخدم، مما يُحسّن أمان النظام. من أين يمكن الحصول على تطبيقات فلات باك؟ لا يمكن استخدام حزم فلات باك بدون أن توفر توزيعة لينكس المستخدمة خاصية دعم فلات باك، وتتوفر هذه الخاصية افتراضيًا في توزيعات معينة مثل فيدورا Fedora وسولس Solus، بينما تحتاج بعض التوزيعات مثل أوبنتو Ubuntu إلى تثبيت خاصية الدعم يدويًا. لا يقيّد فلات باك المستخدم بمصدر واحد للحصول على البرامج، حيث توجد العديد من مستودعات فلات باك وأشهرها المستودع الخارجي فلات هاب Flathub وهو مركز تطبيقات وبرامج أنشأه فريق فلات باك ويمكن من خلاله نشر البرمجيات وإدارتها، وتوضح الصورة التالية الصفحة الرئيسية لموقع فلات هاب: مزايا وعيوب فلات باك يمتلك فلات باك العديد من المزايا والعيوب كغيره من الأنظمة، سنناقش تاليًا العديد من هذه المزايا والعيوب: مزايا استخدام فلات باك يمكن تشغيل تطبيقات فلات باك على أي توزيعة لينكس. يوفر توافقيةً مستقبليةً أي أنه يلغي مشكلة عدم عمل بعض التطبيقات عند ترقية إصدار توزيعة لينكس (فقد لا تدعم بعض التطبيقات التوزيعات الجديدة). يحل مشكلة الاعتماديات. يوفر في بعض الحالات أحدث وأهم إصدار من برنامج ما. لا يقيد المستخدمين بمورد واحد بسبب عدم اعتماد التوزيع على خادم مركزي. يُحسّن أمان النظام بسبب خاصية التطبيقات المعزولة sandboxed applications. يحقق تكامل مريح مع مركز البرمجيات الموجود على توزيعة لينكس. عيوب استخدام فلات باك لا يدعم نسخة الخادم، أي لا تتوفر منه نسخة للخادم، وهو متاح فقط لأجهزة الحاسوب المكتبي بنظام التشغيل لينكس. امتلاء أسرع لمساحة التخزين، حيث تشغل تطبيقات فلات باك مساحة أكبر على القرص مما تشغله عادةً ملفات deb/rpm، مما يوجب إيجاد طريقة لتفريغ مساحة التخزين. تفقد بعض البرمجيات فعاليتها بسبب خاصية العمل في بيئة معزولة، فقد لا تدعم تطبيقات فلات باك مثلًا سمة GTK المخصصة حسب المستخدم. تثبيت فلات باك يكون فلات باك مثبتًا على بعض توزيعات لينكس مثل توزيعات فيدورا ولا يكون مثبتًا على توزيعات أخرى مثل أوبنتو، لذا سنشرح كيفية تثبيته وضبطه على تلك التوزيعة، أما إن كانت توزيعتك التي تستخدمها مختلفة، فاختر من صفحة التثبيت الرسمية لفلات باك توزيعتك وطبق الأوامر. نفذ الأمر التالي في سطر الأوامر لتثبيت فلات باك على توزيعة أوبنتو لديك: sudo apt install flatpak يجب أن يكون إصدار التوزيعة 18.10 وما بعد ليعمل الأمر بنجاح، أو نفذ الأوامر الثلاثة التالية: sudo add-apt-repository ppa:flatpak/stable sudo apt update sudo apt install flatpak نزل إضافة باسم Software Flatpak حتى تتاح إمكانية تثبيت التطبيقات دون الحاجة إلى سطر الأوامر، وذلك بتنفيذ الأمر التالي: sudo apt install gnome-software-plugin-flatpak أضف المستودع Flathub الذي أشرنا إليه سابقًا حتى تتمكن من الوصول إلى التطبيقات وتثبيتها منه: flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo أعد تشغيل الحاسوب حتى تكتمل عملية التثبيت، وبعدها يمكنك تثبيت التطبيقات، تصفحها من واجهة التطبيق أو جرب تصفح قائمة apps في الموقع الرسمي وثبت التطبيق الذي تريد. استخدام فلات باك عبر سطر الأوامر عمومًا، توفر واجهة فلات باك الرسومية كل ما تريده في عملية إدارة التطبيقات من تثبيت وتحديث وإزالة مثلًا، وهي سهلة ولا تحتاج إلى تفصيل وشرح ونتركك للتعرف عليها بنفسك، ولكن هنالك طريقة أخرى لاستخدام فلات باك وهي عبر واجهة سطر الأوامر وهذا الاستخدام قد يهم بعض المستخدمين خصوصًا من يحبون استعمال سطر الأوامر وليس لعموم المستخدمين كما أشرنا. يعد الأمر flatpak الأمر الأساسي المستخدم ثم تلحق به كافة الأوامر، مثلًا أمر التثبيت يكون flatpak install وأمر الإزالة يكون flatpak uninstall وهكذا. البحث عن تطبيق يمكنك البحث ضمن التطبيقات باستعمال الأمر search، فمثلًا، إن أردت البحث عن تطبيق الرسم GIMP نفذ الأمر التالي: flatpak search gimp سيعيد الأمر أي نتيجة تطابق عبارة البحث، وتمثل تلك النتيجة معرّف التطبيق والمستودع الموجود فيه وهي تفاصيل مهمة لاستعمالها في عملية التثبيت كما يلي. تثبيت تطبيق إن أردت تثبيت تطبيق ما وليكن تطبيق الرسم GIMP الذي بحثنا عنه في الأمر السابق، فاستعمل الأمر التالي: flatpak install flathub org.gimp.GIMP يشير flathub في الأمر إلى المستودع الذي سيثبّت التطبيق منه والجملة التي في آخره org.gimp.GIMP إلى معرف التطبيق وهو GIMP المراد تثبيته، ويتكون المعرف ذاك من 3 أجزاء كما هو واضح آخرها اسم التطبيق. تثبيت أي تطبيق آخر مشابه للعملية ولكن يختلف جزء معرِّف التطبيق أو أحيانًا المستودع المراد تثبيت التطبيق منه أيضًا، وعمومًا وبدءًا من الإصدار 1.2 من فلات باك، أصبح بإمكانك اختصار الأمر السابق بذكر اسم التطبيق فقط كما يلي: flatpak install gimp ستظهر لك رسالة باسم المستودع ومعرف التطبيق لتؤكدها قبل بدء تثبيت التطبيق. أضف إلى ذلك، توفر معلومات التطبيقات المراد تثبيتها عبر ملف ‎.flatpakref والذي يمكن استعماله في عملية التثبيت أيضًا، سواءً بتحديده محليًا إن كان على الحاسوب أو تحديده عبر رابط ويب، مثلًا يمكن تثبيت تطبيق GIMP السابق بهذه الطريقة عبر الأمر التالي: flatpak install https://flathub.org/repo/appstream/org.gimp.GIMP.flatpakref تشغيل تطبيق يمكنك تشغيل التطبيق بمجرد تثبيته كما وضحنا آنفًا باستعمال الأمر run مع معرّف التطبيق كما يلي: flatpak run org.gimp.GIMP تحديث التطبيقات يمكنك تحديث جميع التطبيقات المثبتة عبر فلات باك باستعمال الأمر التالي: flatpak update عرض التطبيقات المثبتة استعمل الأمر التالي لعرض كافة التطبيقات المثبتة: flatpak list --app حذف تطبيق استعمل الأمر التالي لحذف تطبيق مثبّت بتحديد معرّفه: flatpak uninstall org.gimp.GIMP عرضنا إلى هنا الأوامر شائعة الاستخدام ويمكنك الرجوع إلى الموقع الرسمي لمزيد من التفاصيل إن احتجت لها. ترجمة -وبتصرف- للمقال What is Flatpak?‎ لصاحبه Ankush Das. اقرأ أيضًا عرض موجز لأشهر توزيعات لينكس مدخل إلى مستودعات أوبنتو تثبيت نظام لينكس داخل نظام ويندوز في بيئة وهمية عشرون أمرا في لينكس يفترض أن يعرفها كل مدير نظم
    1 نقطة
×
×
  • أضف...