假设我有以下模型:
import ephem
class Person(models.Model):
username = models.ForeignKey(User, blank=False)
slug = models.SlugField(blank=False)
location = ForeignKey(Location, blank=True) # return longitude & latitude city from Pyephem library
city = models.CharField(max_length=255, blank=False, default='')
def __str__(self):
return self.username
def get_city(self):
city = ephem.Observer()
city.lon = float(self.location.longitude)
city.lat = float(self.location.latitude)
return city # return city from location field
def save(self, *args, **kwargs):
if not self.pk:
self.slug = slugify(self.username)
super(Person, self).save(*args, **kwargs)
如何在django的视图中以编程方式比较日志用户的属性和属性的其他用户的属性?用户名字段基于slug,还有一个来自其他python库(Pyephem)的附加对象,如下所示:
^{pr2}$*更新
我根据@cezar answer更新了上面的模型,并为city添加了功能:
user1 = Person.objects.get(pk=1)
你是说这里的user
字段是Person
的吗? 我想应该是user1 = Person.objects.get(pk=1).user
此外,
这里
,其中
filter
方法始终返回QuerySet
, 参见:https://docs.djangoproject.com/en/1.11/ref/models/querysets/据我所知,根据你的问题,你需要计算两个不同用户城市之间的距离——一个用户登录并访问页面(我们称他为访客),另一个用户的页面已被访问(我们称他为主机)。在
你有模型:
models.py
现在让我们为
Person
创建通用视图。在
^{pr2}$views.py
在您的模板中,您可以访问
distance
,并将其显示给访问者,这样她就可以知道她所在的城市距离宿主所在城市有多远。 我对Pyephem库没有任何经验,所以您必须用适当的计算替换这行伪代码。在据我所知,很可能很多用户在你的模型中有一个插件。所以,如果你想用一些slug比较日志用户和用户组,我会生成QuerySet,然后进行迭代。在
好的,谢谢你的更多细节!现在更新后,我认为
^{pr2}$request.user
对象就是您要查找的对象:相关问题 更多 >
编程相关推荐