Django 如何向每个ForeignKey自定义用户模型添加带有OneToOneField的模型

Django 如何向每个ForeignKey自定义用户模型添加带有OneToOneField的模型,django,django-models,django-views,Django,Django Models,Django Views,以下场景: 我需要一个自定义的用户模型与ForeignKey的用户模型 e、 一个用户可以有一些行星 对于每个创建的行星,还有其他具有OneToOneField的模型 e、 g.包含尺寸、颜色或其喜爱动物的模型,但: Django视图选择一个行星的最佳方式是什么,模板上的信息被过滤到相应的行星上。 这是一个简单的例子,但原则没有改变。如何处理这种情况?假设我理解您的意思,作为一个非常简单的示例,根据提供的用户名和名称选择用户星球的视图可能类似于: def show_planet(请求): us

以下场景:

我需要一个自定义的用户模型与ForeignKey的用户模型

e、 一个用户可以有一些行星

对于每个创建的行星,还有其他具有OneToOneField的模型

e、 g.包含尺寸、颜色或其喜爱动物的模型,但:


Django视图选择一个行星的最佳方式是什么,模板上的信息被过滤到相应的行星上。
这是一个简单的例子,但原则没有改变。如何处理这种情况?

假设我理解您的意思,作为一个非常简单的示例,根据提供的
用户名和
名称选择
用户星球的视图可能类似于:

def show_planet(请求):
user=user.objects.get(username=request.get['username'])
planet=UserPlanet.objects.get(user=user,name=request.get['name'])
返回渲染(请求“show_planet.html”。{planet',planet})
然后呈现
show_planet.html
模板中的值:

<strong>Planet name:</strong><span>{{ planet.name }}</span>
<strong>Planet size:</strong><span>{{ planet.planet_values.size }}</span>
行星名称:{{Planet.name}
行星大小:{{Planet.Planet_values.size}
上面的示例假设给定的用户名和名称只有一个
UserPlanet
。如果不是这样,您必须
过滤
UserPlanet
对象,然后在模板中循环搜索结果

class PlanetValues(models.Model):
    user_planet = models.OneToOneField(UserPlanet, related_name='planet_values', on_delete=models.CASCADE)
    size = models.IntegerField(default=1000)
<strong>Planet name:</strong><span>{{ planet.name }}</span>
<strong>Planet size:</strong><span>{{ planet.planet_values.size }}</span>