python - How to compare user logged's field with other user in Django's views -


suppose have following model:

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 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 location field          def save(self, *args, **kwargs):             if not self.pk:                 self.slug = slugify(self.username)             super(person, self).save(*args, **kwargs) 

how make programmatically in django's views compare between attribute of logged user , attribute's other user? which's username field based on slug & there's additional object other python library (pyephem), following:

def detail(request, slug):     instance = person.objects.all()     city = ........ # city city fields @ person model, city's value current user logged have value city0 , city's values other user have value city1, city2, city3 et seq...      distance in instance:                     # if current user logged visiting other user detail compare them each other         city0 , city1, city0 , city2, city0 , city3 et seq....             distance = ... # calculate distance of city's user logged & city's other user         # i'm not sure in area results of comparing between attribute of current user logged , attribute of other user          return render(         request, "detail.html",         {             'distance': distance,         }     ) 

*updated

i updated model above based on @cezar answer , add function city:

based on understand, probable many users got 1 slug in model. if want compare between logged user , group of users slug generate queryset , iterate over.

def detail(request, slug=none):     instances = person.objects.filter(slug=slug)      if instances.count() == 0:         return httpresponse('slug returns 0 matches')     else:         object in instances:             city0 , city1 

ok, more details! after post update think request.user object looking for:

def calculate_distance(user1, user2):     #do here like:     #user1.location.lat user2.location.long etc.     return distance_between  def detail(request, slug=none):     instance = person.objects.get(slug=slug)     observer_user = request.user      #added below variable clarify code     user_to_be_observed = instance      return calculate_distance(observer_user, user_to_be_observed) 

Comments

Popular posts from this blog

Is there a better way to structure post methods in Class Based Views -

performance - Why is XCHG reg, reg a 3 micro-op instruction on modern Intel architectures? -

jquery - Responsive Navbar with Sub Navbar -