Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何根据django ORM中的父表字段获取对象?_Django_Django Models_Django Orm - Fatal编程技术网

如何根据django ORM中的父表字段获取对象?

如何根据django ORM中的父表字段获取对象?,django,django-models,django-orm,Django,Django Models,Django Orm,我有一个名为Profile的表,其代码如下: class Profile(models.Model): user = models.OneToOneField('auth_user', related_name='profile', verbose_name='profile', on_delete=models.CASCADE) name = models.CharField(max_length=30, verbose_name='name')

我有一个名为Profile的表,其代码如下:

class Profile(models.Model):
    user = models.OneToOneField('auth_user', 
           related_name='profile', verbose_name='profile', on_delete=models.CASCADE)
    name = models.CharField(max_length=30, verbose_name='name')
    family = models.CharField(max_length=50, verbose_name='family')
用户表如下所示:

class User(models.Model):
    id = models.IntegerField(primary_key=True)
    username = models.CharField(max_lenght=255)
    password = models.CharField(max_lenght=255)
我想通过此功能获取用户名为的配置文件:

def get_profile(request, username):
    # some codes
如何获得用户名为的个人资料? 我应该在get_profile函数中写什么? tanx

您可以使用
get()
查找:

def get_profile(request, username=None):
    profile = Profile.objects.get(user__username=username)
但如果没有这样的用户,这可能会导致错误。因此,更好的方法是使用:

如果您对双下划线语法(
user\uu username=username
)感到困惑,请选中。

您可以使用
get()
查找:

def get_profile(request, username=None):
    profile = Profile.objects.get(user__username=username)
但如果没有这样的用户,这可能会导致错误。因此,更好的方法是使用:


如果您对双下划线语法(
user\uu username=username
)感到困惑,请检查。

我编写了您提供给我的代码,但它不起作用。它会在以下消息中引发一个错误:AttributeError at/mojtaba/type对象“Profile”没有属性“model”,不仅当我输入真实用户名时,而且当我输入假用户名(不在数据库中)时,它也会引发该错误。即:def get_Profile(request,username=None):Profile=get_object_或_404(配置文件,user\uu username=username)打印(配置文件)密码尝试仅用
user\uu username
替换
user\uu username
。再次无效。可能与urlpattern有关的问题?这是此函数的urlpattern url(r'(?P[\w])/$,views.get\u Profile,name='Profile'),一开始我用基于类的视图测试它,它返回了第一个错误,现在我用基于函数的视图测试它,它一直返回404错误。我编写了你给我的代码,但它不起作用。它发出了一个错误消息:AttributeError at/mojtaba/type对象“Profile”没有属性“model”,不仅当我输入实际使用时rname,但当我输入一个假用户名(不在数据库中)时,无论如何它都会引发错误。就是这样:def get_profile(请求,username=None):profile=get_object_或_404(profile,user_uusername=username)print(profile)仅用
user\u username
替换
user\u id\u username
。再次无效。可能与urlpattern有关的问题?这是此函数url的urlpattern(r'(?P[\w])/$,views.get\u profile,name='profile')),起初我用基于类的视图测试它,它返回了第一个错误,现在我用基于函数的视图测试它,它一直返回404错误。