from django.contrib import admin
from app_doctors.models import Specialty, University, Degree, Doctor

class Specialty_admin(admin.ModelAdmin):
    list_display = ('name', )
    search_fields = ('name', )

class University_admin(admin.ModelAdmin):
    list_display = ('name', )
    search_fields = ('name', )

class Degree_admin(admin.ModelAdmin):
    list_display = ('name', )
    search_fields = ('name', )

class Doctor_admin(admin.ModelAdmin):
    list_display = ('id', 'get_user_full_name', 'get_specialties', 'university', 'degree')
    search_fields = ('user__first_name', 'user__last_name', 'specialties__name', 'university__name', 'degree__name')
    raw_id_fields = ('user',)
    
    def get_user_full_name(self, obj):
        return f"{obj.user.first_name} {obj.user.last_name}"
    get_user_full_name.short_description = 'نام پزشک'

    def get_specialties(self, obj):
        print([specialty.name for specialty in obj.specialties.all()])
        return ", ".join([specialty.name for specialty in obj.specialties.all()])
    get_specialties.short_description = 'تخصص‌ها'

# ثبت مدل‌ها در سایت ادمین
admin.site.register(Specialty, Specialty_admin)
admin.site.register(University, University_admin)
admin.site.register(Degree, Degree_admin)
admin.site.register(Doctor, Doctor_admin)



from django.db import models
from django.conf import settings
from app_medicalCenters.models import MedicalData

class Specialty(models.Model):
    name = models.CharField(max_length=100, unique=True, verbose_name="تخصص")

    def __str__(self):
        return self.name

    class Meta:
        db_table = 'tbl_doctor_specialtys'
        verbose_name_plural = 'تخصص‌های پزشکی'

class University(models.Model):
    name = models.CharField(max_length=100, unique=True, verbose_name="نام دانشگاه")

    def __str__(self):
        return self.name

    class Meta:
        db_table = 'tbl_doctor_universitys'
        verbose_name_plural = 'دانشگاه‌های پزشکی'

class Degree(models.Model):
    name = models.CharField(max_length=100, unique=True, verbose_name="مقطع تحصیلی")

    def __str__(self):
        return self.name

    class Meta:
        db_table = 'tbl_doctor_degrees'
        verbose_name_plural = 'مدارج تحصیلی'

class Doctor(models.Model):
    user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, verbose_name="کاربر")
    specialties = models.ManyToManyField(Specialty, blank=True, verbose_name="تخصص‌ها")
    university = models.ForeignKey(University, on_delete=models.SET_NULL, null=True, verbose_name="فارغ‌التحصیل")
    degree = models.ForeignKey(Degree, on_delete=models.SET_NULL, null=True, verbose_name="مدرک تحصیلی")
    profile_image = models.ImageField(upload_to='app_doctors/profile_image/', blank=True, null=True, verbose_name='تصویر پروفایل پزشک')
    introduction_video = models.FileField(upload_to='app_doctors/introduction_video/', blank=True, null=True, verbose_name='ویدیو معرفی پزشک')
    office_location = models.CharField(max_length=15, blank=True, null=True, verbose_name='لوکیشن مطب')
    resume = models.TextField(blank=True, null=True, verbose_name='رزومه')
    description = models.TextField(blank=True, null=True, verbose_name='توضیحات')
    name_medical_centers = models.ManyToManyField(MedicalData, blank=True, verbose_name="فعالیت در مراکز درمانی")

    def __str__(self):
        return f"{self.user.first_name} {self.user.last_name}"

    class Meta:
        db_table = 'tbl_doctor_data'
        verbose_name_plural = 'اطلاعات دکتر'

در کد بالا میتوتی پنل ادمین رو طوری بنویسی که فیلدهای کلید مشترک هم مانند user قابلیت سرچ و انتخاب از جدول یوزرها داشته باش؟