وبلاگ
جنگو

ساخت تگِ دلخواه برای قالب (Custom Template Tags)

سلام داخل فولدر برنامۀ boards یک فولدر با نام templatetags و درون آن دو فایل خالی با نام‌های init__.py__ و form_tags.py ایجاد می کنیم. myproject/ |– myproject/ | |– accounts/ | |– boards/ | | |– migrations/ | | |– templatetags/ <– here | | | |– __init__.py | | …

خواندن ادامه
جنگو

خطاهای فیلدهای خالی در ورودی کاربر

سلام اگر بخواهیم فرم را به صورت خالی ارسال کنیم، خطای مناسب دریافت می کنیم. اما اگر یوزرنیم یا پسوردی که وجود ندارد را وارد کنیم این اتفاق می‌افتد. (دور فیلدها به رنگ سبز در می آید.) در واقع، قالبِ form.html تنها چک می کند که فیلدخالی است یا نه …

خواندن ادامه
جنگو

ورود به سیستم (Login)

سلام مثل همیشه، آدرس را اضافه می کنیم. myproject/urls.py from django.conf.urls import url from django.contrib import admin from django.contrib.auth import views as auth_views from accounts import views as accounts_views from boards import views urlpatterns = [ url(r’^$’, views.home, name=’home’), url(r’^signup/$’, accounts_views.signup, name=’signup’), url(r’^login/$’, auth_views.LoginView.as_view(template_name=’login.html’), name=’login’), url(r’^logout/$’, auth_views.LogoutView.as_view(), name=’logout’), url(r’^boards/(?P<pk>\d+)/$’, views.board_topics, …

خواندن ادامه
جنگو

نمایش منویی خاص برای کاربران معتبر

سلام می خواهیم یک منو با لینکی به صفحۀ خروج برای کاربرانی که از قبل وارد سیستم شده اند ایجاد کنیم و آن را در صفحۀ base.html نمایش دهیم. منوی بازشوندۀ بوت استرپ ۴، برای اجرا به جی کوئری نیاز دارد. به آدرس اینترنتی jquery.com/download رفته و compressed, production jQuery 3.2.1 …

خواندن ادامه
جنگو

خروج از سیستم (Logout)

سلام اولین کار این است که مسیر جدید را در urls.py اضافه کنیم. myproject/urls.py from django.conf.urls import url from django.contrib import admin from django.contrib.auth import views as auth_views from accounts import views as accounts_views from boards import views urlpatterns = [ url(r’^$’, views.home, name=’home’), url(r’^signup/$’, accounts_views.signup, name=’signup’), url(r’^logout/$’, auth_views.LogoutView.as_view(), name=’logout’), …

خواندن ادامه
جنگو

بهبود قالب ثبت نام

سلام برای دانلود الگویی تکرار‌شونده در پس‌زمینه می توان به آدرس https://www.toptal.com/designers/subtlepatterns مراجعه کرد. بعد از دانلود آن، یک فولدر جدید با نام img درون فولدر static ایجاد می‌کنیم. بعد از آن درون فولدر static/css یک فایل css جدید با نام accounts.css می سازیم. myproject/ |– myproject/ | |– accounts/ …

خواندن ادامه
جنگو

بهبود وضعیت فایل های تست

سلام در حال حاضر تمام کدهای مربوط به تست برنامه را درون فایل قرار accounts/tests.py می دهیم. یک فایل طولانی و بلند… در این قست می خواهیم برنامۀ تست را به چند فایل متفاوت تقسیم‌بندی کنیم. برای اینکار یک فولدر با نام tests داخل فولدر accounts ایجاد می کنیم. درون …

خواندن ادامه
جنگو

اضافه کردن فیلد ایمیل به فرم ثبت نام

سلام به صورت پیش فرض فیلد ایمیل در UserCreationForm وجود ندارد اما به راحتی آن را می‌توان به فرم اضافه کرد. فایلی به نام forms.py را در فولدر accounts  ایجاد کنیم. accounts/forms.py from django import forms from django.contrib.auth.forms import UserCreationForm from django.contrib.auth.models import User class SignUpForm(UserCreationForm): email = forms.CharField(max_length=254, required=True, …

خواندن ادامه
جنگو

تست ویوی ثبت نام

سلام کد تست را به شکل زیر بهتر می کنیم. accounts/tests.py from django.contrib.auth.forms import UserCreationForm from django.core.urlresolvers import reverse from django.urls import resolve from django.test import TestCase from .views import signup class SignUpTests(TestCase): def setUp(self): url = reverse(‘signup’) self.response = self.client.get(url) def test_signup_status_code(self): self.assertEquals(self.response.status_code, 200) def test_signup_url_resolves_signup_view(self): view = resolve(‘/signup/’) …

خواندن ادامه
جنگو

ارجاع‌دهی به کاربران معتبر در قالب

سلام از کجا مطمئن شویم که برنامه به درستی کار کرده؟! برای این کار لازم است تا برنامه، نامِ کاربر جاری سیستم را در منوی بالایی نمایش دهد. templates/base.html {% block body %} <nav class=”navbar navbar-expand-sm navbar-dark bg-dark”> <div class=”container”> <a class=”navbar-brand” href=”{% url ‘home’ %}”>Django Boards</a> <button class=”navbar-toggler” type=”button” …

خواندن ادامه
هرگونه استفادۀ از این آموزش به صورت رایگان و با ارجاع به تمدن جایز است.