如何将ForeignKey的选择限制为对象具有ForeignKey的对象我也有一个ForeignKey?
class ExtendedProfile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True, related_name='extended_profile')
dob = models.DateField(null=True, blank=True, verbose_name="date of birth")
prefered_profile = models.ForeignKey('Trainer', on_delete=models.SET_NULL, null=True, blank=False, related_name='main_profiles', limit_choices_to={ 'owner' : ____ })
def __str__(self):
return self.user.username
def create_user_profile(sender, instance, created, **kwargs):
if created:
ExtendedProfile.objects.create(user=instance)
post_save.connect(create_user_profile, sender=User)
ExtendedProfile是Django自己的用户模型的扩展,因此具有OneToOneField类型的ForeignKey。
Trainer是一个不同的配置文件模型,其中可能有多个Trainer与User具有相同的ForeignKey(字段名称“owner”)。
我基本上试图确保'prefered_profile'只能是与ExtendedProfile相同的用户所拥有的对象...如何在模型上获得self值?