জ্যাঙ্গো, একটি কাস্টম 500/404 ত্রুটি পৃষ্ঠা তৈরি করছে


107

টিউটোরিয়ালটি ঠিক এখানে পাওয়া যায় , আমি কাস্টম 500 বা 404 ত্রুটি পৃষ্ঠা তৈরি করতে পারি না। আমি যদি কোনও খারাপ url টাইপ করি তবে পৃষ্ঠাটি আমাকে ডিফল্ট ত্রুটি পৃষ্ঠা দেয়। আমার কি এমন কিছু যাচাই করা উচিত যা কাস্টম পৃষ্ঠাটি প্রদর্শিত হতে বাধা দেয়?

ফাইল ডিরেক্টরি:

mysite/
    mysite/
        __init__.py
        __init__.pyc
        settings.py
        settings.pyc
        urls.py
        urls.pyc
        wsgi.py
        wsgi.pyc
    polls/
        templates/
            admin/
                base_site.html
            404.html
            500.html
            polls/
                detail.html
                index.html
        __init__.py
        __init__.pyc
        admin.py
        admin.pyc
        models.py
        models.pyc
        tests.py
        urls.py
        urls.pyc
        view.py
        views.pyc
    templates/
    manage.py

মাইসাইট / সেটিংসের মধ্যে.আমি এইগুলি সক্ষম করেছি:

DEBUG = False
TEMPLATE_DEBUG = DEBUG

#....

TEMPLATE_DIRS = (
    'C:/Users/Me/Django/mysite/templates', 
)

মাইসাইট / পোলস / urls.py এর মধ্যে:

from django.conf.urls import patterns, url

from polls import views

urlpatterns = patterns('',
    url(r'^$', views.index, name='index'),
    url(r'^(?P<poll_id>\d+)/$', views.detail, name='detail'),
    url(r'^(?P<poll_id>\d+)/results/$', views.results, name='results'),
    url(r'^(?P<poll_id>\d+)/vote/$', views.vote, name='vote'),
)

আমি প্রয়োজনীয় যে কোনও কোড পোস্ট করতে পারি, তবে আমি যদি কোনও খারাপ ইউআরএল ব্যবহার করি তবে কাস্টম 500 ত্রুটি পৃষ্ঠা পেতে আমার কী পরিবর্তন করা উচিত?

সম্পাদনা করুন

সমাধান: আমার একটি অতিরিক্ত ছিল

TEMPLATE_DIRS

আমার সেটিংসের মধ্যেই.পি এবং এটি সমস্যা তৈরি করে


4
আমার কোডে ডিবাগ মিথ্যাতে সেট করা আছে
জ্যাক

এই আপনি সাহায্য করতে পারে stackoverflow.com/a/12180499/1628832
karthikr

4
কেবলমাত্র একটি কাস্টম টেম্পলেট তৈরি করার উপায় সন্ধান করার সময় এই উত্তরটি খুঁজে পেয়েছি এবং আমি জ্যাঙ্গো ডকুমেন্টেশন কিছুটা ভাগ করতে চেয়েছিলাম যা আমাকে অনেক সাহায্য করেছিল; docs.djangoproject.com/en/1.7/ref/views/...
Blackeagle52

খনি টেমপ্লেট_ডায়ার্স সেটিংস ছাড়াই কাজ করেছে।
প্রোগ্রামিংজো

4
প্রথম লাইনে লিঙ্কটি জ্যাঙ্গোর 404 পৃষ্ঠাতে বাড়ে যখন ব্যঙ্গাত্মকতার জন্য পয়েন্টগুলি। জ্যাঙ্গোর এমন একটি সংস্করণের একটি টিউটোরিয়াল পৃষ্ঠায় নিয়ে যায় যা আমার মনে হয়। জ্যাঙ্গো ২.০ এর জন্য টিউটোরিয়াল পৃষ্ঠার লিঙ্কটি এখানে রয়েছে: docs.djangoproject.com/en/2.0/intro/tutorial03
andrewec

উত্তর:


123

আপনার প্রধানের অধীনে views.pyনিম্নলিখিত দুটি দর্শনগুলির নিজস্ব কাস্টম বাস্তবায়ন যুক্ত করুন এবং আপনি যা প্রদর্শন করতে চান তা দিয়ে 404.html এবং 500.html টেম্পলেটগুলি সেট আপ করুন ।

এই সমাধান সহ, কোনও কাস্টম কোড যুক্ত করার প্রয়োজন নেই urls.py

কোডটি এখানে:

from django.shortcuts import render_to_response
from django.template import RequestContext


def handler404(request, *args, **argv):
    response = render_to_response('404.html', {},
                                  context_instance=RequestContext(request))
    response.status_code = 404
    return response


def handler500(request, *args, **argv):
    response = render_to_response('500.html', {},
                                  context_instance=RequestContext(request))
    response.status_code = 500
    return response

হালনাগাদ

handler404এবং handler500জাজানো স্ট্রিং কনফিগারেশন ভেরিয়েবলগুলি রফতানি করা হয় django/conf/urls/__init__.py। এজন্য উপরের কনফিগারটি কাজ করে।

উপরের কনফিগারেশনটি কাজ করতে পেতে, আপনার urls.pyফাইলটিতে নিম্নলিখিত ভেরিয়েবলগুলি সংজ্ঞায়িত করতে হবে এবং এক্সপোর্ট করা জ্যাঙ্গো ভেরিয়েবলগুলিকে স্ট্রিং পাইথন পথের দিকে নির্দেশ করতে হবে যেখানে এই জ্যাঙ্গো ফাংশনাল ভিউগুলি সংজ্ঞায়িত করা হয়েছে, যেমন:

# project/urls.py

handler404 = 'my_app.views.handler404'
handler500 = 'my_app.views.handler500'

জ্যাঙ্গো ২.০ এর জন্য আপডেট

হ্যান্ডলার দর্শনের জন্য স্বাক্ষরগুলি জ্যাঙ্গো ২.০ এ পরিবর্তন করা হয়েছে: https://docs.djangoproject.com/en/2.0/ref/views/#error-views

যদি আপনি উপরের মত মতামত ব্যবহার করেন তবে হ্যান্ডলার 404 বার্তা সহ ব্যর্থ হবে:

"হ্যান্ডলার 404 () একটি অপ্রত্যাশিত মূলশব্দ যুক্তি 'ব্যতিক্রম' পেয়েছে"

সেক্ষেত্রে আপনার মতামতগুলি এর মতো সংশোধন করুন:

def handler404(request, exception, template_name="404.html"):
    response = render_to_response(template_name)
    response.status_code = 404
    return response

এটি আমার পক্ষে বেশ ভালভাবে কাজ করেছে বলে মনে হয়েছিল, তবে কোনও কারণে অনুরোধ করা হয়েছে। ব্যবহারকারী 404 টেম্পলেটটিতে ঠিক আছে, তবে 500 টেমপ্লেটে মোটেও তা নয় (এবং তারা প্রায় অভিন্ন) - এখানে পোস্ট করা প্রশ্ন: স্ট্যাকওভারফ্লো.com/ প্রশ্নগুলি / 26043211 /…
মাধ্যাকর্ষণ গ্রেভ

4
আরেকটি বিষয় নিয়ে আমি ভাবছিলাম - আপনি যদি প্রশাসক ব্যাকএন্ড ব্যবহার করেন এবং সেইগুলির জন্য পৃথক টেম্পলেট ব্যবহার করতে চান তবে? আমার জানা মতে, অ্যাডমিনের এই বিট কোডটি ওভাররাইড করার জন্য কোনও ভিউ.পি নেই
গ্র্যাভিটি গ্রেভ

11
@ গ্র্যাভিটিগ্রাভ দিটি 500 templateরেন্ডার করবে না request.userকারণ এটি 500 টি সার্ভার ত্রুটির কথা জানিয়েছে, তাই সার্ভারটি কোনও কিছুই পরিবেশন করতে সক্ষম নয়।
অ্যারন লেলেভিয়ার

5
জ্যাঙ্গো ১.৯ নিয়ে আমার পক্ষে কাজ করেননি; (সম্ভবত আমি কিছু ভুল করছি hand হ্যান্ডলার 404 জাঙ্গো সংরক্ষিত নাম? কীভাবে জানাজো জানবেন যে এটির সেই মতটি বলা উচিত?
deathangel908

4
আমি আপনার মন্তব্যের ভিত্তিতে উত্তর আপডেট করেছি। দুঃখিত যে আপডেটটি এত দেরিতে। আমি আশাবাদী এটা সাহায্য করবে.
অ্যারন লেলেভিয়ার

73

সরকারী উত্তর:

কাস্টম ত্রুটি দর্শনগুলি কীভাবে সেট আপ করবেন সে সম্পর্কে অফিসিয়াল ডকুমেন্টেশনের লিঙ্কটি এখানে:

https://docs.djangoproject.com/en/stable/topics/http/views/#customizing-error-views

এটি আপনার ইউআরএললঙ্কে এই জাতীয় লাইন যুক্ত করতে বলেছে (অন্য কোথাও সেটিংয়ের কোনও প্রভাব থাকবে না):

handler404 = 'mysite.views.my_custom_page_not_found_view'
handler500 = 'mysite.views.my_custom_error_view'
handler403 = 'mysite.views.my_custom_permission_denied_view'
handler400 = 'mysite.views.my_custom_bad_request_view'

আপনি সেটিংসটি সংশোধন করে সিএসআরএফ ত্রুটি ভিউ কাস্টমাইজ করতে পারেন CSRF_FAILURE_VIEW

ডিফল্ট ত্রুটি হ্যান্ডলারগুলি:

এটা তোলে এর মূল্য ডিফল্ট ত্রুটি হ্যান্ডেলার ডকুমেন্টেশন পড়া, page_not_found, server_error, permission_deniedএবং bad_request। ডিফল্টরূপে, তারা এই টেমপ্লেট যদি তাদেরকে যথাক্রমে জানতে পারেন ব্যবহার করুন: 404.html, 500.html, 403.html, এবং 400.html

সুতরাং আপনি যা করতে চান তা যদি TEMPLATE_DIRSবেশিরভাগ ত্রুটি পৃষ্ঠা তৈরি করা হয়, কেবল সেই ডিরেক্টরিগুলিকে একটি ডিরেক্টরিতে তৈরি করুন , আপনার URLConf এডিট করার দরকার নেই। কোন প্রসঙ্গের ভেরিয়েবলগুলি উপলভ্য তা দেখতে ডকুমেন্টেশনটি পড়ুন।

জাজানো ১.১০ এবং তারপরে, ডিফল্ট সিএসআরএফ ত্রুটি দর্শন টেমপ্লেটটি ব্যবহার করে 403_csrf.html

গোছা:

DEBUGএগুলি কাজ করার জন্য ভুয়াতে সেট করতে হবে তা ভুলে যাবেন না , অন্যথায়, সাধারণ ডিবাগ হ্যান্ডলারগুলি ব্যবহৃত হবে।


4
আমি যোগ করেছি, কিন্তু এটি কাজ করে না। Handler404 এবং অন্যদের আমার মতামত সঠিক স্থানে ইশারা যোগ করা হয়েছে, এখনো এটা না কাজ, এখনও ডিফল্ট 404. এইজন্য এবং হ্যাঁ, আমি ডিবাগ মিথ্যা মোডে আছি এবং 1.9 ব্যবহার
KhoPhi

জ্যাঙ্গো ১.৯ ব্যবহার করে এবং কেবলমাত্র .h০০ এইচটিএমএল ইত্যাদি টেম্পলেট যুক্ত করা মানক পৃষ্ঠাগুলির পরিবর্তে সেগুলি দেখায়। খুব সহজ ফিক্স।
15

4
গোছা আমাকে সাহায্য করেছে। এটি আমার সেটিংসে এই পরিবর্তনগুলি সম্পাদন করে কাজ করে py
শেফুও

4
অন্য কেউ যদি ভাবছেন যে পৃথিবীতে কোথায় রয়েছে ইউআরএলকনফ, এখানে এটি
আর্থার তারাসভ

@ আর্থার তারাসভ হ্যাঁ, এটির সাথে url.py ফাইলের রেফারেন্স করা ভাল।
জ্যাক প্লুচি

42

Url.py এ এই লাইনগুলি যুক্ত করুন

urls.py

from django.conf.urls import (
handler400, handler403, handler404, handler500
)

handler400 = 'my_app.views.bad_request'
handler403 = 'my_app.views.permission_denied'
handler404 = 'my_app.views.page_not_found'
handler500 = 'my_app.views.server_error'

# ...

এবং view.py এ আমাদের কাস্টম ভিউগুলি বাস্তবায়ন করুন।

ভিউ.পি

from django.shortcuts import (
render_to_response
)
from django.template import RequestContext

# HTTP Error 400
def bad_request(request):
    response = render_to_response(
        '400.html',
        context_instance=RequestContext(request)
        )

        response.status_code = 400

        return response

# ...

6
আপনি কেন handler400এটির সাথে ওভাররাইট করতে আমদানি করবেন handler400 = 'myapp.views.bad_request'?
ফ্লাইম


5
হ্যান্ডলারগুলি ওভাররাইড করার জন্য আপনার এখানে আমদানি করার দরকার নেই।
ফানকোট্রন

4
আপনার ব্যবহার করা উচিত নয় render_to_response। দস্তাবেজগুলি থেকে: "এটি প্রস্তাবিত নয় এবং ভবিষ্যতে প্রত্যাখ্যান হওয়ার সম্ভাবনা রয়েছে।"
টিমি ও'মাহনি

জ্যাঙ্গো 1.10 জন্য, যেমন render_to_responseঅবচিত হতে যাচ্ছে, নিম্নলিখিত (ব্যবহারের দেখতে render: পরিবর্তে) stackoverflow.com/questions/44228397/...
mrdaliri

21

আপনি উল্লেখ করা পৃষ্ঠাটি থেকে:

যখন আপনি কোনও ভিউয়ের মধ্যে থেকে এইচটিপি 404 উত্থাপন করবেন তখন জাজানো 404 ত্রুটিগুলি পরিচালনা করার জন্য উত্সর্গীকৃত একটি বিশেষ দৃশ্য লোড করবে। এটি আপনার মূল ইউআরএলকনফে চলক হ্যান্ডলার 404 সন্ধান করে এটি খুঁজে পেয়েছে (এবং কেবলমাত্র আপনার মূল ইউআরএলকনফে; হ্যান্ডলার 404 স্থাপনের অন্য কোনও জায়গায় কোনও প্রভাব পড়বে না), যা পাইথন ডটেড সিনট্যাক্সের একটি স্ট্রিং - সাধারণ ইউআরএলএনএফ কলব্যাকস একই ফর্ম্যাট। 404 ভিউতে নিজেই বিশেষ কিছু নেই: এটি কেবল একটি সাধারণ দৃশ্য।

সুতরাং আমি বিশ্বাস করি আপনার url.py এ এই জাতীয় কিছু যুক্ত করতে হবে:

handler404 = 'views.my_404_view'

এবং হ্যান্ডলার 500 এর জন্য অনুরূপ।


মাইকে কেমন দেখাচ্ছে? আজ আমার প্রথম দিন জ্যাঙ্গো ব্যবহার করে এবং আমি এখনও দড়িতে
ঝুলছি

4
@ জিমরিলি আপনাকে আপনার ভিউগুলিতে একটি উপযুক্ত 500 ফাংশন যুক্ত করতে হবে এবং তারপরে এটি পরিবর্তনশীল সহ উল্লেখ করতে হবে। সুতরাং, আপনার urlpatterns = ...লাইনের ওপরে , একটি লাইন যুক্ত করুন যা বলবে handler500 = 'views.handle500'এবং তারপরে def handle500(request):আপনার ভিউজেসটিতে একটি যুক্ত করুন যা আপনার 500.html প্রদর্শন করে।
মাইক পেলে

19

আপনার সমস্ত কিছু যদি কাস্টম পৃষ্ঠাগুলি দেখানো হয় যা আপনার সাইটের জন্য কিছু অভিনব ত্রুটি বার্তা রয়েছে DEBUG = Falseতখন আপনার টেম্পলেট ডিরেক্টরিতে 404.html এবং 500.html নামের দুটি টেম্পলেট যুক্ত করুন এবং 404 বা 500 এর পরে এটি স্বয়ংক্রিয়ভাবে এই কাস্টম পৃষ্ঠাগুলি তুলবে উত্থাপিত হয়.


4
এটি 'DIRS': [os.path.join(BASE_DIR, '<project_name>/templates')]আপনার টিমপ্লেটস তালিকার মধ্যে : আপনার মতো কিছু রয়েছে তা নিশ্চিত করে এটি কাজ করে settings.py
এরিক

13

ইন জ্যাঙ্গো 2. * আপনি এই নির্মাণ ব্যবহার করতে পারেন views.py

def handler404(request, exception):
    return render(request, 'errors/404.html', locals())

ইন settings.py

DEBUG = False

if DEBUG is False:
    ALLOWED_HOSTS = [
        '127.0.0.1:8000',
        '*',
    ]

if DEBUG is True:
    ALLOWED_HOSTS = []

Urls.pypy

# https://docs.djangoproject.com/en/2.0/topics/http/views/#customizing-error-views
handler404 = 'YOUR_APP_NAME.views.handler404'

সাধারণত আমি ডিফল্ট_অ্যাপ তৈরি করি এবং এতে সাইট-প্রশস্ত ত্রুটিগুলি, প্রসঙ্গে প্রসেসরগুলি পরিচালনা করি।


আমার জন্য কাজ। তবে কী exception?
জেলিভেন

ডকুমেন্টেশনের লিঙ্ক অনুসারে: ডকস.ডজ্যাঙ্গোপ্রজেক্ট / এএন / ২০১.1 / ২০১৮ / রেফ / আরলস / … এটি লেখা আছে: নিশ্চিত হয়ে নিন যে হ্যান্ডলার অনুরোধ এবং ব্যতিক্রম যুক্তিগুলি গ্রহণ করে
অ্যালাউনি ইউনেস

4
জাঙ্গো ৩.০ এ আমার জন্য কাজ করেছেন । তবে কী locals()? ফাইলটি কেবল দেখায় pass
এনহ্যাঞ্চ করুন

11

সেটিংস.পি:

DEBUG = False
TEMPLATE_DEBUG = DEBUG
ALLOWED_HOSTS = ['localhost']  #provide your host name

এবং টেম্পলেট ফোল্ডারে কেবল আপনার 404.htmlএবং 500.htmlপৃষ্ঠাগুলি যুক্ত করুন । পোলস অ্যাপ্লিকেশনে টেমপ্লেটগুলি সরান 404.htmlএবং 500.htmlথেকে


এর বার্তা কীভাবে ব্যবহার করবেন raise Http404('msg'): stackoverflow.com/a/37109914/895245 {{ request_path }} এছাড়াও উপলব্ধ।
সিরো সান্তিলি 郝海东 冠状 病 六四 事件


8

জ্যাঙ্গো ৩.০

ত্রুটি দর্শনগুলি কীভাবে কাস্টমাইজ করা যায় তা এখানে লিঙ্কটি

এখানে একটি ভিউ রেন্ডার করতে লিংক দেওয়া আছে

মধ্যে urls.py(প্রধান এক, প্রকল্প ফোল্ডারে), করা:

handler404 = 'my_app_name.views.custom_page_not_found_view'
handler500 = 'my_app_name.views.custom_error_view'
handler403 = 'my_app_name.views.custom_permission_denied_view'
handler400 = 'my_app_name.views.custom_bad_request_view'

এবং সেই অ্যাপটিতে ( my_app_name) এ দিন views.py:

def custom_page_not_found_view(request, exception):
    return render(request, "errors/404.html", {})

def custom_error_view(request, exception=None):
    return render(request, "errors/500.html", {})

def custom_permission_denied_view(request, exception=None):
    return render(request, "errors/403.html", {})

def custom_bad_request_view(request, exception=None):
    return render(request, "errors/400.html", {})

দ্রষ্টব্য: error/404.htmlযদি আপনি আপনার ফাইলগুলিকে প্রকল্পগুলিতে (অ্যাপস নয়) টেম্পলেট ফোল্ডারে templates/errors/404.htmlরাখেন তবে দয়া করে যেখানে আপনি চান সেই ফাইলগুলি রাখুন এবং সঠিক পথটি লিখুন।

দ্রষ্টব্য 2: পৃষ্ঠা পুনরায় লোডের পরে, আপনি যদি এখনও পুরানো টেম্পলেটটি দেখতে পান তবে পরিবর্তন করুন settings.py DEBUG=True, সংরক্ষণ করুন এবং তারপরে আবার False(সার্ভার পুনরায় চালু করতে এবং নতুন ফাইলগুলি সংগ্রহ করতে)।


অতিরিক্ত দ্রষ্টব্য: আপনি যদি DEUB=Falseআপনার স্ট্যাটিক ফাইলগুলিতে চলমান থাকেন তবে এটি সরবরাহ করা যাবে না, যাতে এটি আপনার কাস্টম ত্রুটির টেম্পলেট পরিবর্তনগুলির পূর্বরূপ দেখতে না পারে। ./manage.py runserver --insecureযাইহোক তাদের পরিবেশন করার জন্য বল জাজানো পেতে ব্যবহার করুন।
রব

খুব ভালভাবে ব্যাখ্যা!
শিভা-দেব-উইজার্ড

7

কোনো ভুল করি, ত্রুটি পৃষ্ঠায় জানতে কোথা থেকে জ্যাঙ্গো লোড templates.I পথ stack.In বেস মানে template_dir যোগ এইসব HTML পৃষ্ঠা 500.html , 404.html । এই ত্রুটিগুলি ঘটলে সম্পর্কিত টেম্পলেট ফাইলগুলি স্বয়ংক্রিয়ভাবে লোড হবে।

400 এবং 403 এর মতো আপনিও অন্যান্য ত্রুটি কোডগুলির জন্য পৃষ্ঠা যুক্ত করতে পারেন ।

আশা করি এই সাহায্য !!!


7

জাজানোতে 3.x, গৃহীত উত্তর কার্যকর হবে না কারণ render_to_responseসম্পূর্ণরূপে অপসারণ করা হয়েছে পাশাপাশি গ্রহণযোগ্য উত্তরটি যে সংস্করণটির জন্য কাজ করেছে সেহেতু আরও কিছু পরিবর্তন আনা হয়েছে।

আরও কিছু উত্তর এখানে রয়েছে তবে আমি একটি সামান্য পরিস্কার উত্তর উপস্থাপন করছি:

আপনার মূল urls.pyফাইলে:

handler404 = 'yourapp.views.handler404'
handler500 = 'yourapp.views.handler500'

ইন yourapp/views.pyফাইল:

def handler404(request, exception):
    context = {}
    response = render(request, "pages/errors/404.html", context=context)
    response.status_code = 404
    return response


def handler500(request):
    context = {}
    response = render(request, "pages/errors/500.html", context=context)
    response.status_code = 500
    return response

render()আপনি yourapp/views.pyফাইলটি আমদানি করেছেন তা নিশ্চিত করুন:

from django.shortcuts import render

পার্শ্ব দ্রষ্টব্য: render_to_response()জ্যাঙ্গোতে 2.xঅবহেলা করা হয়েছিল এবং এটি সম্পূর্ণরূপে যাচাইকরণে সরানো হয়েছে 3.x


6

কোনও অতিরিক্ত দেখার প্রয়োজন নেই। https://docs.djangoproject.com/en/3.0/ref/views/

টেম্পলেট ডিরেক্টরিগুলির মূলটিতে কেবল ত্রুটি ফাইলগুলি রেখে দিন

  • 404.html
  • 400.html
  • 403.html
  • 500.html

ডিবাগ মিথ্যা হলে এটির ত্রুটি পৃষ্ঠাটি ব্যবহার করা উচিত


5

একটি একক লাইন হিসাবে (404 জেনেরিক পৃষ্ঠার জন্য):

from django.shortcuts import render_to_response
from django.template import RequestContext

return render_to_response('error/404.html', {'exception': ex},
                                      context_instance=RequestContext(request), status=404)

4
এবং এটি কোথায় ব্যবহার করবেন?
সামি

4
# views.py
def handler404(request, exception):
    context = RequestContext(request)
    err_code = 404
    response = render_to_response('404.html', {"code":err_code}, context)
    response.status_code = 404
    return response

# <project_folder>.urls.py
handler404 = 'todo.views.handler404' 

এটি জাঙ্গো 2.0 তে কাজ করে

404.htmlঅ্যাপ্লিকেশন টেম্পলেট ফোল্ডারের অভ্যন্তরে আপনার কাস্টমটি অন্তর্ভুক্ত করার বিষয়ে নিশ্চিত হন ।


3

আপনার ত্রুটি টেম্পলেটগুলিতে সরানোর চেষ্টা করবেন .../Django/mysite/templates/?

আমি এটি সম্পর্কে নিশ্চিত নোট, তবে আমার কাছে মনে হয় এগুলি ওয়েবসাইটে "গ্লোবাল" হওয়া দরকার।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.