0
我真的不知道我在做什么错> 我在我的模型中有一些ForeignKeys relatinships,我想在我的窗体管理站点中显示。我想显示我的ForeignKeys和显示在Django管理站点,但我收到以下错误:我该如何解决这个问题:<class'website.admin.UserProfileInline'>:(admin.E202)'website.Profile'没有ForeignKey为'website.Doctor'?
<class 'website.admin.UserProfileInline'>: (admin.E202) 'website.Profile' has no ForeignKey to 'website.Doctor'.
我这里还有我的模型:
class Profile(models.Model):
SEX_CHOICE_MALE = 'M'
SEX_CHOICE_FEMALE = 'F'
SEX_CHOICES = (
(SEX_CHOICE_MALE, "Male"),
(SEX_CHOICE_FEMALE, "Female")
)
user = models.OneToOneField(User, on_delete=models.CASCADE, unique=True)
initial = models.CharField(max_length=2)
dob = models.CharField(max_length=8)
gender = models.CharField(max_length=1, choices=SEX_CHOICES, default='N/A')
contact_number = models.CharField(max_length=14)
address = models.CharField(max_length=20)
suburb = models.CharField(max_length=12)
postcode = models.IntegerField(default=0000)
def __str__(self):
return self.user.username
@receiver(post_save, sender=User)
def create_user_profile(sender, instance, created, **kwargs):
if created:
Profile.objects.create(user=instance)
@receiver(post_save, sender=User)
def save_user_profile(sender, instance, **kwargs):
instance.profile.save()
class Patient(models.Model):
user = models.ForeignKey(Profile)
health_history = models.TextField()
def __str__(self):
return self.user.username
class Doctor(models.Model):
user = models.ForeignKey(Profile)
department = models.ForeignKey('Department')
def __str__(self):
return self.user.username
class Department(models.Model):
name = models.CharField(max_length=30)
def __str__(self):
return self.name
class Appointment(models.Model):
TIME_SLOT = (
(1, _("8h00 - 8h30")),
(2, _("8h30 - 9h00")),
(3, _("9h00 - 9h30")),
(4, _("9h30 - 10h00")),
(5, _("10h00 - 10h30")),
(6, _("10h30 - 11h00")),
(7, _("11h00 - 11h30")),
(7, _("11h30 - 12h00")),
)
STATUS_INACTIVE = 'I'
STATUS_ACTIVE = 'A'
STATUS = (
(STATUS_ACTIVE, "Acitve"),
(STATUS_INACTIVE, "Innactive")
)
APPOINTMMENT_TYPE_ONLINE = 'O'
APPOINTMMENT_TYPE_PHYSICAL = 'P'
APPOINTMMENT_TYPE = (
(APPOINTMMENT_TYPE_ONLINE, "Online"),
(APPOINTMMENT_TYPE_PHYSICAL, "Physical")
)
status = models.CharField(choices=STATUS, default=STATUS_ACTIVE,max_length=7)
slot = models.CharField(default=1, choices=TIME_SLOT, max_length=10)
doctor = models.ForeignKey('Doctor')
patient = models.ForeignKey('Patient')
date = models.DateField(default=timezone.now, blank=True)
reason = models.TextField()
showed_up = models.BooleanField(default=False)
appointment_type = models.CharField(default=APPOINTMMENT_TYPE_PHYSICAL, max_length=10)
consultation = models.ForeignKey("Consultation")
def __str__(self):
return self.date
class Consultation(models.Model):
diagnosis = models.TextField()
prescription = models.TextField()
def __str__(self):
return self
class Account(models.Model):
patient = models.ForeignKey('Patient')
date = models.DateField(default=timezone.now)
amount = models.DecimalField(verbose_name='Due to us', max_digits=100, decimal_places=2)
def __str__(self):
return self.patient
和我的admin.py:
from .models import (Account, Appointment, Consultation, Department, Doctor,
Profile, Patient)
try:
admin.site.unregister(User)
finally:
class UserProfileInline(admin.StackedInline):
model = Profile
@admin.register(Department)
class DepartmentAdmin(admin.ModelAdmin):
fields = []
# @admin.register(Profile)
# class ProfileAdmin(admin.ModelAdmin):
# fields = []
@admin.register(Doctor)
class DoctorAdmin(admin.ModelAdmin):
fields = []
inlines = [UserProfileInline]
@admin.register(Patient)
class PatientAdmin(admin.ModelAdmin):
fields = []
@admin.register(Appointment)
class AppointmentAdmin(admin.ModelAdmin):
fields = []
@admin.register(Consultation)
class ConsultationAdmin(admin.ModelAdmin):
fields = []
@admin.register(Account)
class AccountAdmin(admin.ModelAdmin):
fields = []
我希望得到任何帮助
这就是我真的不明白。我创建了Profile模型以便Doctor和Patient继承,因为它们都有许多共同的字段。 –