১৩.২ অ্যাডমিন প্যানেল তৈরী

আজকে আমরা admin প্যানেল নিয়ে কাজ করবো অর্থাৎ accounts মডেল কে এডমিন প্যানেল এ রেজিষ্টার করে ফেলবো। এখন চিন্তা করে দেখো যে রেজিষ্টার করলেই কি আমরা এডমিন প্যানেল থেকে accounts মডেল কে দেখতে পারবো??

না পারবো না আমাদের কে migrations কমান্ড দিতে হবে নিচের মত করে

python manage.py makemigrations

python manage.py migrate

এখনো আমরা এডমিন প্যানেল থেকে দেখতে পারবো না কারণ আমাদের superuser তৈরি করা নাই সো superuser তৈরি করে নিবো নিচের মত করে।

python manage.py createsuperuser

এখন আমরা python manage.py runserver দিয়ে ওয়েবসাইট কে রান করবো তারপর এডমিন প্যানেল এ যাবো, লগইন করবো। এখন আমরা একজন ইউজার এর ব্যাংক একাউন্ট তৈরি করতে পারবো। যেহেতু সেটা object তৈরি করবে সেই অবজেক্ট এর একটা নাম আমরা models.py এ বলে দিয়ে আসতে পারি যাতে করে কোন অবজেক্ট টা কোন ইউজার এর সেটা যেনো বুঝতে পারি আমরা।

   def __str__(self):
        return str(self.account_no)

accounts/models.py

class UserBankAccount(models.Model):
    user = models.OneToOneField(User, related_name='account', on_delete=models.CASCADE)
    account_type = models.CharField(max_length=10, choices=ACCOUNT_TYPE)
    account_no = models.IntegerField(unique=True) # account no duijon user er kokhono same hobe na
    birth_date = models.DateField(null=True, blank=True)
    gender = models.CharField(max_length=10, choices=GENDER_TYPE)
    initial_deposite_date = models.DateField(auto_now_add=True)
    balance = models.DecimalField(default=0, max_digits=12, decimal_places=2) # ekjon user 12 digit obdi taka rakhte parbe, dui doshomik ghor obdi rakhte parben 1000.50
    def __str__(self):
        return str(self.account_no)

এখন সেম ভাবে useraddress যে মডেল টা ছিল সেটাকে রেজিষ্টার করবো আর একজন ইউজার এর অ্যাড্রেস তৈরি করবো। এখন সেম ভাবে একটা অবজেক্ট যখন তৈরি হবে এই মডেল ক্লাস এর তখন সেটা বুঝা মুশকিল যে কার জন্যে এই অবজেক্ট টা, কোন ইউজার এর তাই আমরা str dunder মেথড দিয়ে একজন ইউজার এর ইমেইল টা রিটার্ন করবো নিচের মত করে।

def __str__(self):
    return str(self.user.email)
class UserAddress(models.Model):
    user = models.OneToOneField(User, related_name='address', on_delete=models.CASCADE)
    street_address = models.CharField(max_length=100)
    city = models.CharField(max_length= 100)
    postal_code = models.IntegerField()
    country = models.CharField(max_length=100)
    def __str__(self):
        return str(self.user.email)

Last updated