【发布时间】:2020-02-10 13:42:27
【问题描述】:
我真的被困在这里,我正在考虑改变我的模型并重新开始
我有这些模型
class CustomUser(AbstractBaseUser):
email = models.EmailField(max_length=255, unique=True)
password2 = models.CharField(max_length=128)
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
active = models.BooleanField(default=True) # Able to login
practitioner = models.BooleanField(default=False) # has access to a clinc
admin = models.BooleanField(default=False) # superuser
staff = models.BooleanField(default=False) # staff
timestamp = models.DateTimeField(auto_now_add=True)
class Modalities(models.Model):
name = models.CharField(max_length=50)
def __str__(self):
return self.name
class Profile(models.Model):
user = models.OneToOneField(User,
related_name='prof_user',
on_delete=models.CASCADE)
bio = models.TextField(max_length=5000)
mods = models.ManyToManyField(Modalities)
phone = PhoneNumberField()
clinics = models.ManyToManyField(Clinic)
personnummer = models.CharField(max_length=12)
street = models.CharField(max_length=50)
city = models.CharField(max_length=50)
consent = models.BooleanField()
class Clinic(models.Model):
practitioner = models.OneToOneField(User,
related_name='prac_user',
on_delete=models.CASCADE)
lat = models.FloatField(null=True, blank=True)
lng = models.FloatField(null=True, blank=True)
name = models.CharField(max_length=128, )
phone = PhoneNumberField()
description = models.TextField(max_length=5000)
street = models.CharField(max_length=128, )
city = models.CharField(max_length=128, )
在我看来,我正在尝试从 Profile 模型中获取 mod,从 Clinic_id 开始
类似
clinic = Clinic.objects.filter(pk=clinic_id)
profile = get_object_or_404(Profile, user=request.user)
mods = profile.mods
在过去的几个小时里,我尝试了很多东西,但我就是想不通。
我需要更改我的模型还是我要访问这个错误?
【问题讨论】:
-
您看到错误了吗?第一件事是
clinic实际上是一个查询集,而不是一条记录。另一件事是我在Profile模型上看不到user字段,所以无论如何你都应该得到404 -
我想我在兜圈子,越来越困惑。
Class Profile(models.Model): user = models.OneToOneField(User, related_name='prof_user', on_delete=models.CASCADE)是配置文件模型中的用户字段。它指向用户模型 -
抱歉造成混淆 - 我没有注意到
Profile上的user字段。没关系,但clinic仍然是一个查询集,这很奇怪,因为您通过pk过滤所以假设返回单个记录。
标签: python django django-models orm