Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.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
Python 交互同一模型实例的策略_Python_Django_Django Models_Django Views - Fatal编程技术网

Python 交互同一模型实例的策略

Python 交互同一模型实例的策略,python,django,django-models,django-views,Python,Django,Django Models,Django Views,假设你有一个像下面这样的模型。在每个音乐家的页面上,您希望显示具有相同代理的其他音乐家 class Musician(models.Model): first_name = models.CharField(max_length=50) last_name = models.CharField(max_length=50) agent = models.ForeignKey(Agent) 此外,您还希望运行一个要显示在音乐家页面上的方法。该方法计算当前实例与共享同一代理

假设你有一个像下面这样的模型。在每个音乐家的页面上,您希望显示具有相同代理的其他音乐家

class Musician(models.Model):
    first_name = models.CharField(max_length=50)
    last_name = models.CharField(max_length=50)
    agent = models.ForeignKey(Agent)
此外,您还希望运行一个要显示在音乐家页面上的方法。该方法计算当前实例与共享同一代理的所有相关实例之间的相似性

def similarity(self, other_instance)
    ...
    return similarity
因此,模板需要以下内容:

当前音乐家的详细信息 相关音乐家的详细信息及其与当前音乐家的相似性
有没有Django批准的方法来解决这个问题?对于这样的问题,使用基于类的视图有意义吗

要显示具有相同代理的其他音乐家,请使用此查询music.agent.music\u集

在模板中:

<h1>{{ musician.first_name }} {{ musician.last_name }}</h1>

到目前为止你有什么?这看起来很直接,我的主要问题是在哪里以及如何调用相似性函数。例如,它应该是在特定实例上调用的方法吗?在这种情况下,我需要在模型实例中运行queryset。我不确定这是否是一种可以接受的做法。或者我可以调用视图中的相似性函数?我的主要问题是了解应该如何使用相似性函数,特别是考虑到它需要了解相关实例。谢谢您的回答。我已经明白如何做到这一点。我的问题与运行上面详述的相似性方法以及信息如何在系统中流动更为相关。@user3246023如果我正确理解您的问题,我认为django或基于类的视图与您的问题无关。您正在尝试实现一些算法来查找两个不同实例之间的相似性。这是django不会告诉你的,我已经编写了算法来比较两个实例的相似性。我的问题涉及到应该在哪里以及如何使用该函数。例如,它是否应该是附加到当前实例的方法,因此所有内容都将在模型本身中处理?在这种情况下,我肯定需要在模型实例中运行queryset。还是应该在视图中调用该函数?
<h1>{{ musician.first_name }} {{ musician.last_name }}</h1>
{% for related_musician in musician.agent.musician_set %}
   #show related musician details
   {{ related_musician.first_name }}
{% endfor %}