2015-07-20 3 views
0

Я работаю на веб-сайте Django, и один из моих моделей определяется следующим образом:Назначают дважды в шаблоне Django

class Field(models.Model): 
    user = models.ForeignKey(User_ext) 
    name = models.CharField(max_length=50) 
    bounds = models.PolygonField() 
    date_created = models.DateTimeField(auto_now_add=True) 
    date_last_modified = models.DateTimeField(auto_now=True) 

    class Meta: 
     verbose_name = 'Field' 

    def __str__(self): 
     return self.name 

    def getAcres(self): 
     self.bounds.transform(32118) 
     acres = self.bounds.area * 0.000247105381 
     return round(acres, 2) 

    def getCenter(self): 
     center = [self.bounds.centroid.x, self.bounds.centroid.y] 
     return center 

У меня есть index.html, который содержит открытые слои карты, центр которого инициализируется как таковой:

var center = ol.proj.fromLonLat([-88.455, 39.999]); 

Я хочу изменить это так «центр» переменная будет инициализирована в центре поля «Границы» моей полевой модели. Я пробовал это: var center = {{field.0.getCenter}}, но это не сработало. Можно ли даже присвоить переменные таким образом?

+0

Что же пошло не так? Вы уверены, что 'field' - это список экземпляров' Field'? –

ответ

0
{{ field.getCenter }} 

... но getCenter должна возвращать строку, как "0,112, 14,123. Alternate:

var center = ol.proj.fromLonLat([{{ field.bounds.centroid.x }}, {{ field.bounds.centroid.x }}]); 
0

Предполагая, что field является экземпляром Field модели, попробуйте:

var center = {{ field.getCenter }}; 
Смежные вопросы